/* ═══════════════════════════════════════════════════════════════
   mobile.css — 모바일 전용 · 합쳐진 헤더 · 키보드 안정화
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 600px) {
  html { height: -webkit-fill-available; height: 100%; }
  body { height: 100%; }
  /* overflow:hidden은 #app에만 적용 — 로그인 폼 입력 방해 방지 */

  #app {
    /* iOS Safari 주소창 흔들림 방지 */
    height: 100dvh;
    min-height: -webkit-fill-available;
    display: flex; flex-direction: column; overflow: hidden;
  }

  .status-bar { flex-shrink: 0; padding: 2px 10px; font-size: 10px; }
  .wrap { flex:1; overflow:hidden; display:flex; flex-direction:column; padding:0 8px 0; min-height:0; }
  .tb   { flex-shrink:0; padding-bottom:4px; overflow-x:auto; flex-wrap:nowrap !important; }
  .desk { display: none; }

  .mobv { flex:1; overflow:hidden; display:flex; flex-direction:column; min-height:0; }

  /* ─ 기존 분리 네비 숨김 (합쳐진 헤더 사용) ─ */
  .mobn { display: none !important; }

  #mba  { flex:1; overflow:hidden; display:flex; flex-direction:column; min-height:0; }

  .mobbrd {
    flex: 1; overflow: hidden; display: flex; flex-direction: column;
    border: 1px solid var(--bdr3); border-radius: var(--radius); min-height: 0;
  }

  /* ─ ✅ 합쳐진 헤더 (네비게이션 + 보드명) ─ */
  .mob-unified-hdr {
    display: flex; align-items: center;
    padding: 8px 10px; flex-shrink: 0; color: #fff;
    user-select: none; position: relative; gap: 4px;
  }
  .mob-nav-btn {
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(255,255,255,.2); border: none;
    color: #fff; cursor: pointer; display: flex; align-items: center;
    justify-content: center; font-size: 14px; flex-shrink: 0;
  }
  .mob-nav-btn:disabled { opacity: .3; }
  /* 타이틀: 진짜 중앙 (content 너비만큼만) */
  .mob-board-name {
    position: absolute; left: 50%; transform: translateX(-50%);
    font-size: 14px; font-weight: 600;
    cursor: pointer; max-width: 50%;
    pointer-events: auto;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    text-align: center;
  }
  /* 검색+메뉴 우측 고정 */
  .mob-hdr-right {
    display: flex; align-items: center; gap: 2px; flex-shrink: 0;
    margin-left: auto;
  }

  /* ─ 점 인디케이터 ─ */
  .mob-dots { display: none !important; }

  /* ─ 메모 목록 스크롤 ─ */
  .mobbdy {
    flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain; padding: 0 0 6px 8px; background: var(--bg);
    min-height: 0; will-change: scroll-position;
  }

  /* ─ 입력창 하단 고정 ─ */
  .mob-input-area {
    flex-shrink: 0;
    padding: 6px 8px max(8px, env(safe-area-inset-bottom));
    background: var(--bg);
    border-top: 1px solid var(--bdr3);
    margin-bottom: 0 !important;
  }
  html.capacitor .mob-input-area {
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }
  .mob-input-row {
    display: flex; align-items: flex-end; gap: 5px;
  }
  .mob-textarea {
    flex: 1; font-size: 16px; padding: 8px 10px;
    border: 1px solid var(--bdr2); border-radius: 20px;
    background: var(--bg); color: var(--txt); outline: none;
    resize: none; overflow: hidden; font-family: inherit;
    line-height: 1.4; min-height: 36px; max-height: 100px;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-textarea:focus { border-color: #F97316; }

  .ra   { opacity: 1 !important; }
  .phrm { opacity: 1 !important; }
  .apg  { grid-template-columns: repeat(3, 1fr); }
  .alg  { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 601px) {
  .mobv { display: none; }
  .mobn { display: none; }
}

/* W3.297: 태블릿 APK 대응 — JS의 isMob()은 Capacitor 앱이면 폭과 상관없이 모바일 뷰를 쓰도록
   이미 바뀌었는데, 여기 CSS는 여전히 폭(width)만 보고 있어서 태블릿에서 모바일 콘텐츠(#mba)가
   렌더링은 되지만 화면엔 숨겨지고, 빈 데스크톱 영역(.desk)만 보이는 문제가 있었다.
   Capacitor 안에서는 폭에 상관없이 모바일 뷰를 강제로 보이게 해서 JS와 CSS를 일치시킨다. */
html.capacitor .desk { display: none !important; }
html.capacitor .mobv {
  display: flex !important;
  flex: 1 !important;
  overflow: hidden !important;
  flex-direction: column !important;
  min-height: 0 !important;
}
html.capacitor #mba {
  display: flex !important;
  flex: 1 !important;
  overflow: hidden !important;
  flex-direction: column !important;
  min-height: 0 !important;
}
html.capacitor .mobn { display: none !important; }
html.capacitor .tb { display: flex !important; flex-wrap: nowrap !important; }
html.capacitor #app {
  height: 100dvh !important;
  min-height: -webkit-fill-available !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
html.capacitor .wrap {
  flex: 1 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
}

/* W3.298: 상단 새로고침 로고 — 위 규칙과 같은 이유(max-width:600px 안에만 크기 지정이 있었음)로
   태블릿에서 이미지 원본 크기 그대로 커져서 나왔다. Capacitor 안에서는 폭 상관없이 작게 고정. */
html.capacitor #tb .mobile-header-logo-v303w3{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  height:40px !important;
  width:86px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:auto !important;
  z-index:1 !important;
  overflow:hidden !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
html.capacitor #tb .mobile-header-logo-v303w3 img{
  display:block !important;
  height:32px !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain !important;
}

/* W3.298b: 태블릿에서는 광고바가 데스크톱 CSS 분기(min-width:601px)를 타면서
   안전영역(하단 제스처바) 여백이 없어 시스템 내비게이션바에 가려졌다. */
html.capacitor #ad-bar {
  height: calc(60px + env(safe-area-inset-bottom, 0px)) !important;
  min-height: calc(60px + env(safe-area-inset-bottom, 0px)) !important;
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  box-sizing: border-box !important;
}

/* ─ 모바일 메모 텍스트 폰트 변수 ─ */
@media (max-width: 600px) {
  .rt, .ea, .mob-textarea { font-size: var(--memo-size) !important; }
  /* 폰트 패널 모바일 위치 */
  .font-panel { top: auto; bottom: 70px; right: 10px; left: 10px; }
}

/* ─ 모바일 태그 스트립 + 팝업 크기 개선 ─ */
@media (max-width: 600px) {
  .row-tag-btn { width:8px; min-width:8px; }
  .tag-picker { flex-direction:row; gap:8px; padding:8px 10px; }
  .tag-dot { width:22px; height:22px; }
}

/* ══════════════════════════════════════════════
   모바일 '+' 메뉴
   ══════════════════════════════════════════════ */

/* '+' 버튼 */
.mob-plus-btn {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--bg2); border: 1.5px solid var(--bdr2);
  color: var(--txt2); cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; transition: background .15s;
}
.mob-plus-btn:active { background: var(--bdr2); }

/* 바텀시트 배경 */
#mob-attach-menu, #mob-media-sheet { position: fixed; inset: 0; z-index: 40000; }
.mam-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.mam-sheet {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: var(--bg); border-radius: 20px 20px 0 0;
  padding: 0 0 32px; transform: translateY(100%);
  transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.mam-sheet.up { transform: translateY(0); }
.mam-handle {
  width: 36px; height: 4px; border-radius: 2px;
  background: var(--bdr2); margin: 12px auto 16px;
}
.mam-item {
  width: 100%; display: flex; align-items: center; gap: 14px;
  padding: 14px 20px; background: none; border: none;
  cursor: pointer; text-align: left;
}
.mam-item:active { background: var(--bg2); }
.mam-icon {
  width: 48px; height: 48px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: #fff;
}
.mam-txt { flex: 1; }
.mam-title { font-size: 15px; font-weight: 600; color: var(--txt); }
.mam-sub   { font-size: 12px; color: var(--txt3); margin-top: 2px; }

/* ══════════════════════════════════════════════
   모바일 문서/파일 패널
   ══════════════════════════════════════════════ */

#mob-docs-panel {
  display: none; position: fixed; inset: 0;
  background: var(--bg); z-index: 35000;
  flex-direction: column;
}
#mob-docs-panel.on { display: flex; }

.mob-docs-hdr {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px; border-bottom: 1px solid var(--bdr);
  flex-shrink: 0;
}
.mob-docs-back {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--bg2); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: var(--txt2);
}
.mob-docs-title {
  flex: 1; font-size: 16px; font-weight: 600; color: var(--txt);
}
.mob-docs-fav-btn {
  display: flex; align-items: center; gap: 5px;
  padding: 7px 12px; border-radius: 20px;
  border: 1.5px solid var(--bdr2); background: var(--bg2);
  font-size: 12px; font-weight: 500; color: var(--txt2);
  cursor: pointer;
}
.mob-docs-fav-btn.active {
  background: #FFF7ED; border-color: #F97316;
  color: #F97316;
}
.mob-docs-fav-btn.active i::before { content: '\eaf8'; } /* ti-star-filled */

.mob-docs-list {
  flex: 1; overflow-y: auto; padding: 8px 0;
}
.mob-doc-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; border-bottom: 1px solid var(--bdr3);
}
.mob-doc-item:active { background: var(--bg2); }
.mob-doc-badge {
  width: 42px; height: 42px; border-radius: 10px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 9px; font-weight: 700; letter-spacing: -.3px;
}
.mob-doc-info { flex: 1; min-width: 0; cursor: pointer; }
.mob-doc-name {
  font-size: 13px; font-weight: 500; color: var(--txt);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mob-doc-meta { font-size: 11px; color: var(--txt3); margin-top: 3px; }

.mob-doc-fav {
  width: 36px; height: 36px; flex-shrink: 0;
  background: none; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: var(--bdr2);
}
.mob-doc-fav.fav-on,
.mob-doc-fav[class*="fav-on"] { color: #F97316; }

.mob-docs-empty {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 60px 20px;
  color: var(--txt3); font-size: 14px; text-align: center;
}

/* ── 사진/동영상 커스텀 시트 ── */
.mob-media-btns {
  display: flex; justify-content: center; gap: 20px;
  padding: 10px 20px 28px;
}
.mob-media-btn {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  background: none; border: none; cursor: pointer; padding: 8px;
  -webkit-tap-highlight-color: transparent;
}
.mob-media-btn:active .mob-media-icon { background: var(--bdr2); }
.mob-media-icon {
  width: 62px; height: 62px; border-radius: 50%;
  background: #F97316;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; color: #fff; transition: opacity .15s;
}
.mob-media-btn:active .mob-media-icon { opacity: .75; }
.mob-media-btn span {
  font-size: 12px; font-weight: 500; color: var(--txt2);
}

/* ── 모바일: 추가 메모 수정/삭제 버튼 항상 표시 ── */
@media (max-width: 600px) {
  .thread-acts { opacity: 1 !important; }
  .th-act { opacity: 1 !important; font-size: 13px !important; padding: 3px 6px !important; }
  .th-act.dng { color: #e24b4a !important; }
}

/* ── 로딩 스켈레톤 ── */
@keyframes shimmer {
  0%   { opacity: .4; }
  50%  { opacity: .8; }
  100% { opacity: .4; }
}

/* ── 파일 공유 바텀시트 ── */
#file-share-menu { position:fixed; inset:0; z-index:999945; }
.fsm-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.fsm-sheet {
  position:absolute; bottom:0; left:0; right:0;
  background:var(--bg); border-radius:20px 20px 0 0;
  padding:0 0 calc(34px + max(env(safe-area-inset-bottom), 14px)); transform:translateY(100%);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.fsm-sheet.up { transform:translateY(0); }
.fsm-handle {
  width:36px; height:4px; border-radius:2px;
  background:var(--bdr2); margin:12px auto 8px;
}
.fsm-filename {
  font-size:13px; font-weight:600; color:var(--txt);
  padding:4px 20px 12px; border-bottom:1px solid var(--bdr);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fsm-item { 
  width:100%; display:flex; align-items:center; gap:14px;
  padding:14px 20px; background:none; border:none;
  cursor:pointer; text-align:left;
}
.fsm-item:active { background:var(--bg2); }
.fsm-item-loading { opacity:.5; cursor:default; }
.fsm-item-loading:active { background:transparent; }
.fsm-item span { font-size:15px; font-weight:500; color:var(--txt); flex:1; }
.fsm-item small { font-size:11px; color:var(--txt3); }

/* 모바일: 메모 우측 삭제 버튼 숨김 (롱프레스 메뉴로 대체) */
@media (max-width: 600px) {
  .rbt.dl { display: none !important; }
}

/* ✅ Capacitor APK 전용 — 하단 내비게이션바 겹침 보정 */
html.capacitor #mv {
  padding-bottom: max(env(safe-area-inset-bottom), 40px);
}

/* ✅ 모바일 툴바 — 스와이프 스크롤 */
@media (max-width: 600px) {
  .tb {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex-wrap: nowrap !important;
    padding-bottom: 4px !important;
  }
  .tb-chips-scroll {
    display: flex;
    align-items: center;
    gap: 5px;
    overflow-x: auto;
    flex: 1;
    min-width: 0;
    padding: 2px 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tb-chips-scroll::-webkit-scrollbar { display: none; }

  .chip.chip-h {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    width: auto !important;
    min-width: max-content !important;
    height: 26px !important;
    padding: 2px 9px !important;
    border-radius: 13px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px;
    flex: 0 0 auto !important;
    overflow: visible !important;
    white-space: nowrap !important;
    max-width: none !important;
    text-overflow: clip !important;
  }
}

/* ✅ 툴바 설정 버튼 */
.tb-settings-btn, .tb-collapse-btn {
  width: 30px; height: 30px;
  border: none; background: var(--bg2);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: var(--txt2); flex-shrink: 0;
}
.tb-settings-btn:active, .tb-collapse-btn:active { background: var(--bdr2); }

/* ✅ 설정 팝업 메뉴 */
.tb-settings-menu {
  position: fixed; z-index: 999999 !important;
  background: var(--bg); border: 1px solid var(--bdr2);
  border-radius: 10px; padding: 4px;
  box-shadow: 0 4px 16px rgba(0,0,0,.15); min-width: 130px;
}
.tb-settings-menu button {
  width: 100%; display: flex; align-items: center; gap: 8px;
  padding: 9px 12px; background: none; border: none;
  font-size: 13px; color: var(--txt); cursor: pointer;
  border-radius: 6px; font-family: inherit; text-align: left;
}
.tb-settings-menu button:active { background: var(--bg2); }
.tb-settings-menu button i { font-size: 15px; color: var(--txt2); }
/* ═══════════════════════════════════════════════════════════════
   Capacitor Android: keep every bottom UI above system navigation bar
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  html.capacitor,
  html.capacitor body {
    height: 100%;
    overflow: hidden;
  }

  html.capacitor #app {
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding-bottom: max(56px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  html.capacitor .wrap,
  html.capacitor .mobv,
  html.capacitor #mba,
  html.capacitor .mobbrd {
    min-height: 0 !important;
  }

  html.capacitor .mob-input-area {
    padding: 6px 8px 8px !important;
    margin-bottom: 0 !important;
    flex-shrink: 0 !important;
  }

  html.capacitor .mobbdy {
    padding-bottom: 8px !important;
  }

  html.capacitor .ptst {
    bottom: max(72px, calc(env(safe-area-inset-bottom) + 72px)) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   NuMemo patch: media viewer, delete button restore, draft tag bar
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  /* 우측 삭제 버튼 복구 */
  .rbt.dl {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #e24b4a !important;
  }
  .ra { opacity: 1 !important; gap: 3px !important; }

  /* 추가메모 폰트 1pt 축소 */
  .thread-inp { font-size: 12.5px !important; }
  .thread-text { font-size: 11px !important; }

  /* 메모 입력 즉시 중요도 태그 바 */
  .mob-draft-tags {
    display: none;
    align-items: center;
    gap: 8px;
    padding: 0 48px 6px 48px;
  }
  .mob-draft-tags.on { display: flex; }
  .mob-draft-tag {
    flex: 1;
    height: 10px;
    min-width: 0;
    border-radius: 999px;
    background: var(--tag);
    border: 1px solid var(--bdr2);
    box-shadow: none;
  }
  .mob-draft-tag.on {
    height: 14px;
    border: 2px solid #F97316;
    box-shadow: 0 0 0 2px rgba(249,115,22,.16);
  }
  .mob-draft-tag:first-child { background: var(--bg2); }
}

/* 라이트박스가 열린 동안 제스처는 내부 뷰어에서만 처리 */
#lb, #vp, #arch { overscroll-behavior: contain; touch-action: none; }
#lb-video { max-width:95vw; max-height:88vh; border-radius:8px; background:#000; }
#lb-img { transition: transform .12s ease; transform-origin:center center; touch-action:none; }


/* v42 — Android/Capacitor 하단 네비게이션바 겹침 방지 보강 */
@media (max-width: 600px){
  html.capacitor{ --numemo-system-nav-safe: max(34px, env(safe-area-inset-bottom)); }
  html.capacitor .mob-input-area{
    padding-bottom: calc(8px + var(--numemo-system-nav-safe)) !important;
  }
  html.capacitor .mobbdy{
    padding-bottom: calc(12px + var(--numemo-system-nav-safe)) !important;
  }
  html.capacitor #numemo-cctv-btn{
    bottom: calc(18px + var(--numemo-system-nav-safe)) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v44 — APK 화면 정리: PWA와 동일한 하단 여백/입력창 정렬
   목적: Galaxy/Capacitor APK에서 시스템 하단바와 입력창·CCTV·뷰어가 겹치지 않도록 고정
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px){
  html.capacitor{
    --nm-apk-nav-safe: max(52px, env(safe-area-inset-bottom));
    --nm-apk-gap: 8px;
    --nm-apk-bottom: calc(var(--nm-apk-nav-safe) + var(--nm-apk-gap));
  }

  html.capacitor,
  html.capacitor body{
    width:100%; height:100%; overflow:hidden;
    background:#000 !important;
  }

  html.capacitor #app{
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:var(--nm-apk-nav-safe) !important;
    background:var(--bg) !important;
  }

  html.capacitor .wrap{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding-left:6px !important;
    padding-right:6px !important;
    padding-bottom:0 !important;
  }

  html.capacitor .mobv,
  html.capacitor #mba,
  html.capacitor .mobbrd{
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
  }

  html.capacitor .mobbrd{
    margin-bottom:0 !important;
    border-radius:10px !important;
  }

  html.capacitor .mobbdy{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    padding-bottom:10px !important;
  }

  html.capacitor .mob-input-area{
    position:relative !important;
    flex-shrink:0 !important;
    padding:6px 8px 8px !important;
    margin:0 !important;
    background:var(--bg) !important;
    border-top:1px solid var(--bdr3) !important;
    box-shadow:0 -2px 10px rgba(0,0,0,.04) !important;
    z-index:50 !important;
  }

  html.capacitor .mob-input-row{
    align-items:center !important;
  }

  html.capacitor #numemo-cctv-btn{
    right:12px !important;
    bottom:calc(var(--nm-apk-nav-safe) + 12px) !important;
    width:46px !important;
    height:46px !important;
    z-index:99991 !important;
  }

  html.capacitor #numemo-cctv-panel{
    bottom:calc(var(--nm-apk-nav-safe) + 68px) !important;
    max-height:calc(100dvh - var(--nm-apk-nav-safe) - 88px) !important;
  }

  html.capacitor #lb-actions{
    bottom:var(--nm-apk-nav-safe) !important;
  }
  html.capacitor #lb-thumbs{
    bottom:calc(var(--nm-apk-nav-safe) + 58px) !important;
  }
  html.capacitor #lb-stage{
    inset:calc(60px + env(safe-area-inset-top)) 0 calc(var(--nm-apk-nav-safe) + 132px) 0 !important;
  }

  html.capacitor #php .phm{
    height:100dvh !important;
    max-height:100dvh !important;
    padding-bottom:var(--nm-apk-nav-safe) !important;
    box-sizing:border-box !important;
  }
  html.capacitor #php .ph-bottom{
    bottom:var(--nm-apk-nav-safe) !important;
  }
  html.capacitor #php .ph-scroll{
    padding-bottom:calc(130px + var(--nm-apk-nav-safe)) !important;
  }
}


/* v66: 파일 공유/저장 바텀시트 하단 시스템바 겹침 방지 */
html.capacitor .fsm-sheet,
body.capacitor .fsm-sheet {
  padding-bottom: 86px !important;
}
#file-share-menu .fsm-sheet {
  max-height: calc(100dvh - 54px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
#file-share-menu .fsm-item {
  min-height: 54px;
}

/* ══════════════════════════════════════════════
   v75 모바일 롱프레스 정리 UX
   - 모바일에서는 메인메모 확인/삭제 버튼을 평소 숨김
   - 메모 카드 빈 영역 롱프레스 → 확인/삭제 메뉴
   - 추가메모 글자 탭 → 수정, 롱프레스 → 삭제 메뉴
   ══════════════════════════════════════════════ */
@media (max-width: 600px) {
  .row:not(.ed) .ra {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .row.ed .ra {
    display: none !important;
  }
  .thread-acts {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .rt,
  .thread-text {
    cursor: text;
    -webkit-tap-highlight-color: rgba(249,115,22,.12);
  }
  .row {
    -webkit-touch-callout: none;
  }
  .memo-long-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100250;
    background: rgba(0,0,0,.28);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 10px calc(max(12px, env(safe-area-inset-bottom)) + 8px);
  }
  .memo-long-menu {
    width: min(420px, 100%);
    background: var(--bg);
    color: var(--txt);
    border-radius: 18px;
    border: 1px solid var(--bdr2);
    box-shadow: 0 18px 50px rgba(0,0,0,.24);
    overflow: hidden;
    padding: 8px;
    animation: memoLongUp .14s ease-out;
  }
  @keyframes memoLongUp {
    from { transform: translateY(12px); opacity: .75; }
    to   { transform: translateY(0); opacity: 1; }
  }
  .memo-long-handle {
    width: 38px;
    height: 4px;
    border-radius: 999px;
    background: var(--bdr3);
    margin: 3px auto 8px;
  }
  .memo-long-title {
    font-size: 13px;
    font-weight: 700;
    padding: 6px 10px 8px;
    color: var(--txt2);
  }
  .memo-long-item,
  .memo-long-cancel {
    width: 100%;
    border: 0;
    background: transparent;
    color: var(--txt);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 12px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 650;
    text-align: left;
  }
  .memo-long-item:active,
  .memo-long-cancel:active {
    background: var(--bg2);
  }
  .memo-long-item i {
    width: 22px;
    font-size: 20px;
    color: #F97316;
  }
  .memo-long-item.danger,
  .memo-long-item.danger i {
    color: #e24b4a;
  }
  .memo-long-cancel {
    justify-content: center;
    color: var(--txt2);
    border-top: 1px solid var(--bdr);
    margin-top: 4px;
  }
}


/* v79: 모바일 본문 터치영역은 글자 끝까지만, 메모 여백은 절대 변경하지 않음 */
@media (max-width:600px){
  .rt-line{
    display:inline-block!important;
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    vertical-align:top!important;
  }
  .rt{display:inline!important;width:auto!important;max-width:100%!important;}
}


/* ─────────────────────────────────────────────
   v94: 중요도 색상 탭 고정 크기 + 입력 포커스 시에만 표시
   - 웹/앱 공통
   - Realtime/광고/하단 safe-area 수정 없음
   ───────────────────────────────────────────── */

/* 웹 입력창 중요도 바: 작고 정갈한 고정 pill */
.web-draft-tags {
  justify-content: flex-start !important;
  gap: 9px !important;
  padding: 0 34px 6px 0 !important;
}
.web-draft-tags .mob-draft-tag {
  flex: 0 0 42px !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 8px !important;
  min-height: 8px !important;
  border-radius: 999px !important;
}
.web-draft-tags .mob-draft-tag:hover {
  height: 9px !important;
}
.web-draft-tags .mob-draft-tag.on {
  height: 10px !important;
  border: 2px solid #F97316 !important;
}

/* 모바일/앱 입력창 중요도 바: 손가락에 부담 없는 작은 고정 pill */
.mob-draft-tags {
  justify-content: center !important;
  gap: 8px !important;
}
.mob-draft-tag {
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 8px !important;
  min-height: 8px !important;
  border-radius: 999px !important;
}
.mob-draft-tag.on {
  height: 10px !important;
  border: 2px solid #F97316 !important;
}


/* ─────────────────────────────────────────────
   v99: Mobile Touch Guard CSS
   - CCTV는 항상 클릭 가능
   - 닫힌 모달/뷰어는 터치 차단 금지
   ───────────────────────────────────────────── */
#numemo-cctv-btn {
  pointer-events: auto !important;
  z-index: 2147483647 !important;
}
#numemo-cctv-panel {
  z-index: 2147483646 !important;
}
#lb:not(.on),
#vp:not(.on),
#arch:not(.on),
#setup:not(.on),
#php:not(.on),
#mob-media-sheet:not(.on),
#file-share-menu:not(.on) {
  pointer-events: none !important;
}


/* ─────────────────────────────────────────────
   v101: Media Viewer State Machine CSS
   ───────────────────────────────────────────── */
#lb.on {
  pointer-events: auto !important;
}
#lb:not(.on) {
  pointer-events: none !important;
}
#lb-stage {
  pointer-events: auto !important;
  touch-action: none !important;
}
#lb-prev,
#lb-next,
#lb-back,
#lb-x,
#lb-actions,
#lb-share,
#lb-delete {
  pointer-events: auto !important;
}
#lb-thumbs {
  pointer-events: auto !important;
  touch-action: pan-x !important;
  overscroll-behavior-x: contain !important;
  -webkit-overflow-scrolling: touch !important;
}
.lb-thumb {
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
#lb-img,
#lb-video {
  pointer-events: auto !important;
}


/* ─────────────────────────────────────────────
   v109: 파일 공유 롱프레스 팝업 터치 안정화
   ───────────────────────────────────────────── */
#file-share-menu.on,
#file-share-menu.file-share-menu-open {
  pointer-events: auto !important;
}
#file-share-menu.on .fsm-backdrop,
#file-share-menu.on .fsm-sheet,
#file-share-menu.on .fsm-item,
#file-share-menu.file-share-menu-open .fsm-backdrop,
#file-share-menu.file-share-menu-open .fsm-sheet,
#file-share-menu.file-share-menu-open .fsm-item {
  pointer-events: auto !important;
}
#file-share-menu:not(.on):not(.file-share-menu-open) {
  pointer-events: none !important;
}
.fsm-sheet {
  touch-action: manipulation !important;
}
.fsm-item {
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(249,115,22,.12);
}


/* ─────────────────────────────────────────────
   v110: 단일 이미지 카드 크기 제한
   - 단일 이미지가 메모장 전체폭으로 강제 확대되어 깨져 보이는 문제 방지
   - 2장 이미지 카드와 비슷한 시각 크기로 제한
   - 라이트박스/업로드/동기화 로직 수정 없음
   ───────────────────────────────────────────── */

/* 단일 이미지 전용 카드 */
.pimg {
  width: fit-content !important;
  max-width: min(270px, 72vw) !important;
  margin-top: 6px !important;
  margin-left: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: var(--bg2) !important;
  border: 1px solid var(--bdr3) !important;
}

/* 단일 이미지가 원본보다 과하게 커지지 않도록 카드 안에서만 표시 */
.pimg img {
  width: auto !important;
  max-width: min(270px, 72vw) !important;
  max-height: 330px !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  display: block !important;
  background: #111 !important;
}

/* 기존 그리드가 1장으로 렌더되는 경우도 동일하게 제한 */
.mig.c1 {
  width: fit-content !important;
  max-width: min(270px, 72vw) !important;
  grid-template-columns: minmax(120px, min(270px, 72vw)) !important;
  border-radius: 8px !important;
  border: 1px solid var(--bdr3) !important;
  background: var(--bg2) !important;
}

.mig.c1 .mc img {
  width: auto !important;
  max-width: min(270px, 72vw) !important;
  max-height: 330px !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  background: #111 !important;
}

/* 2장 이상 그리드는 기존처럼 메모 폭 활용 */
.mig.c2,
.mig.c3 {
  width: 100% !important;
  max-width: none !important;
  border: none !important;
  background: transparent !important;
}

/* 모바일에서는 손가락 터치와 시인성을 고려해 살짝 크게 */
@media (max-width: 600px) {
  .pimg,
  .mig.c1 {
    max-width: min(230px, 64vw) !important;
  }

  .pimg img,
  .mig.c1 .mc img {
    max-width: min(230px, 64vw) !important;
    max-height: 300px !important;
  }
}


/* ─────────────────────────────────────────────
   v111: 모바일 터치 고착 복구 보강
   ───────────────────────────────────────────── */
#memo-long-menu,
.memo-long-menu-backdrop,
.memo-long-menu,
#file-share-menu.on,
#file-share-menu.file-share-menu-open {
  pointer-events: auto !important;
}

#file-share-menu:not(.on):not(.file-share-menu-open),
#lb:not(.on),
#vp:not(.on),
#arch:not(.on),
#setup:not(.on),
#php:not(.on),
#mob-media-sheet:not(.on) {
  pointer-events: none !important;
}

html.capacitor body,
html.capacitor #app,
html.capacitor #mv,
html.capacitor .mbody,
html.capacitor .win {
  touch-action: pan-y manipulation;
}


/* ─────────────────────────────────────────────
   v112: 모바일 카메라/동영상/앨범 바텀시트 안정화
   ───────────────────────────────────────────── */
#mob-media-sheet.on,
#mob-media-sheet.mob-media-sheet-open {
  pointer-events: auto !important;
}

#mob-media-sheet.on .mam-backdrop,
#mob-media-sheet.on .mam-sheet,
#mob-media-sheet.on .mob-media-btn,
#mob-media-sheet.mob-media-sheet-open .mam-backdrop,
#mob-media-sheet.mob-media-sheet-open .mam-sheet,
#mob-media-sheet.mob-media-sheet-open .mob-media-btn {
  pointer-events: auto !important;
}

#mob-media-sheet:not(.on):not(.mob-media-sheet-open) {
  pointer-events: none !important;
}

#mob-media-inner {
  will-change: transform;
  touch-action: pan-y !important;
}

#mob-media-inner .mam-handle {
  height: 16px !important;
  margin-top: 8px !important;
  margin-bottom: 8px !important;
  cursor: grab;
}

.mob-media-btn {
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(249,115,22,.12);
}


/* ─────────────────────────────────────────────
   v115: 모바일 사진/동영상 선택 플로우 리뉴얼
   - 모바일에서는 시스템 갤러리/카메라를 직접 열고, legacy #php 패널 고착을 차단
   ───────────────────────────────────────────── */
html.capacitor #php:not(.force-open) {
  pointer-events: none !important;
}
html.capacitor #php:not(.force-open):not(.on) {
  display: none !important;
}


/* ─────────────────────────────────────────────
   v116: 모바일 legacy 사진/동영상 선택창(#php) 사용 금지
   ───────────────────────────────────────────── */
html.capacitor #php {
  pointer-events: none !important;
}
html.capacitor #php:not(.force-open) {
  display: none !important;
}
html.capacitor #php.on:not(.force-open),
html.capacitor #php.open:not(.force-open),
html.capacitor #php.act:not(.force-open) {
  display: none !important;
  pointer-events: none !important;
}


/* ─────────────────────────────────────────────
   v118: 모바일 업로드 상태 표시
   ───────────────────────────────────────────── */
.mobile-upload-status-v118 {
  position: fixed;
  left: 10px;
  right: 10px;
  bottom: calc(76px + env(safe-area-inset-bottom));
  z-index: 2147483000;
  background: rgba(18, 24, 38, .94);
  color: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
  overflow: hidden;
  transform: translateY(130%);
  opacity: 0;
  pointer-events: none;
  transition: transform .22s ease, opacity .22s ease;
  font-size: 12px;
}
.mobile-upload-status-v118.on {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.mobile-upload-status-v118 .mus-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  font-weight: 800;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.mobile-upload-status-v118 .mus-head button {
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 20px;
  width: 28px;
  height: 28px;
}
.mobile-upload-status-v118 .mus-list {
  max-height: 145px;
  overflow-y: auto;
  padding: 6px 8px 8px;
}
.mobile-upload-status-v118 .mus-item {
  display: grid;
  grid-template-columns: 42px 1fr 54px;
  gap: 7px;
  align-items: center;
  padding: 7px 6px;
  border-radius: 9px;
}
.mobile-upload-status-v118 .mus-item + .mus-item {
  border-top: 1px solid rgba(255,255,255,.06);
}
.mobile-upload-status-v118 .mus-type {
  color: #fed7aa;
  font-weight: 800;
}
.mobile-upload-status-v118 .mus-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.88);
}
.mobile-upload-status-v118 .mus-state {
  text-align: right;
  color: #fde68a;
  font-weight: 800;
}
.mobile-upload-status-v118 .mus-item.ok .mus-state { color: #86efac; }
.mobile-upload-status-v118 .mus-item.fail .mus-state { color: #fca5a5; }
.mobile-upload-status-v118 .mus-item.run .mus-state { color: #93c5fd; }


/* ─────────────────────────────────────────────
   v120: 롱프레스 메뉴 버튼 터치 안정화
   ───────────────────────────────────────────── */
#memo-long-menu.on,
#memo-long-menu.memo-long-menu-backdrop {
  pointer-events: auto !important;
}
#memo-long-menu .memo-long-menu,
#memo-long-menu .memo-long-item,
#memo-long-menu .memo-long-cancel {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(249,115,22,.14);
}

/* v122: 웹/앱 공통 라이트박스 액션 버튼 터치 보강 */
#lb-actions,
#lb-actions *,
#lb-save,
#lb-delete {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: transparent;
}
#lb-save,
#lb-delete {
  position: relative;
  z-index: 99980 !important;
}


/* ─────────────────────────────────────────────
   v127: 모바일 메모 빈공간 롱프레스 메뉴 제거
   - 웹과 동일하게 각 메모 우측 상단 확인/삭제 버튼을 항상 표시
   - 파일/문서/사진/동영상 자체 롱프레스 메뉴는 유지
   ───────────────────────────────────────────── */
@media (max-width: 600px) {
  .row:not(.ed) .ra,
  .row.ed .ra {
    display: flex !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-self: flex-start !important;
    justify-content: flex-start !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    gap: 3px !important;
  }
  .row .rbt.ok,
  .row .rbt.dl {
    display: flex !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    touch-action: manipulation !important;
  }
  .row .rbt.dl { color: #e24b4a !important; }
}


/* ─────────────────────────────────────────────
   v132: 모바일 앨범 다중 업로드 + 미리보기 시인성 확대
   - 기존 파일 액션/뷰어 로직은 건드리지 않고 카드 표시 크기만 보강
   ───────────────────────────────────────────── */
@media (max-width: 600px) {
  .mig.c2,
  .mig.c3 {
    gap: 5px !important;
  }
  .mig.c2 .mc,
  .mig.c3 .mc {
    min-height: 96px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 8px !important;
    background: #111 !important;
  }
  .mig.c2 .mc img,
  .mig.c3 .mc img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 8px !important;
  }
  .pimg,
  .mig.c1 {
    max-width: min(280px, 78vw) !important;
  }
  .pimg img,
  .mig.c1 .mc img {
    max-width: min(280px, 78vw) !important;
    max-height: 340px !important;
  }
}


/* v139 모바일 업로드 진행 게이지/재시도 */
.mobile-upload-status-v118.v139{max-height:72vh;z-index:2147483001;}
.mobile-upload-status-v118 .mus-progress-wrap{padding:10px 12px 8px;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-upload-status-v118 .mus-progress-info{font-size:12px;color:#e5e7eb;margin-bottom:7px;display:flex;gap:4px;align-items:center}
.mobile-upload-status-v118 .mus-progress-info b{color:#fff;font-size:13px}
.mobile-upload-status-v118 .mus-progress-bar{height:7px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.13)}
.mobile-upload-status-v118 .mus-progress-bar>div{height:100%;background:#F97316;border-radius:99px;transition:width .18s ease}
.mobile-upload-status-v118 .mus-progress-pct{font-size:10px;color:#9ca3af;text-align:right;margin-top:4px}
.mobile-upload-status-v118 .mus-retry{padding:10px 12px;border-top:1px solid rgba(255,255,255,.08)}
.mobile-upload-status-v118 .mus-retry button{width:100%;height:38px;border:0;border-radius:12px;background:#ef4444;color:#fff;font-weight:800;font-size:13px}
.mobile-upload-status-v118 .mus-more{font-size:11px;color:#9ca3af;text-align:center;padding:8px 4px}
.mobile-upload-status-v118 .mus-head.v139 span{font-weight:900}

/* ═══════════════════════════════════════════════════════════════
   v141 NuMemo Timeless Mobile Polish — CSS ONLY
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  body{
    background:linear-gradient(180deg,#fbfbfa 0%,#f6f5f2 100%);
  }
  .wrap{padding:0 10px 0}
  .tb{
    padding:4px 4px 8px;
    gap:8px;
  }
  .chip{
    min-height:30px;
    padding:6px 12px;
    font-size:12px;
    border-radius:999px;
  }
  .mobbrd{
    border:1px solid rgba(31,36,48,.085);
    border-radius:11px;
    background:rgba(255,255,255,.7);
    box-shadow:0 16px 40px rgba(25,31,45,.075),0 2px 8px rgba(25,31,45,.04);
    overflow:hidden;
  }
  .mob-unified-hdr{
    min-height:52px;
    padding:10px 12px;
  }
  .mob-board-name{
    font-size:18px;
    font-weight:900;
    letter-spacing:-.045em;
    max-width:62%;
  }
  .mob-nav-btn{
    width:36px;height:36px;
    background:rgba(255,255,255,.22);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  }
  .mobbdy{
    padding:0 0 12px 8px;
    background:
      linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.28)),
      #fbfaf7;
  }
  .row{
    border-radius:18px !important;
    margin-bottom:12px !important;
    border:1px solid rgba(31,36,48,.08) !important;
    background:rgba(255,255,255,.86) !important;
    box-shadow:0 10px 26px rgba(25,31,45,.055),0 1px 4px rgba(25,31,45,.035) !important;
  }
  .rb{padding:12px 10px 10px 10px !important}
  .rt{
    font-weight:560;
    line-height:1.52;
    letter-spacing:-.025em;
  }
  .rsub{font-size:11px;margin-top:7px;color:#8b9098}
  .ra{padding-right:4px}
  .rbt{
    width:32px;height:32px;
    border-radius:12px !important;
    background:rgba(255,255,255,.7) !important;
  }
  .mig{
    gap:7px !important;
  }
  .mc,.pimg,.vmemo,.pdf-card{
    border-radius:14px !important;
  }
  .mob-input-area{
    padding:10px 10px max(10px,env(safe-area-inset-bottom));
    background:rgba(255,255,255,.78);
    border-top:1px solid rgba(31,36,48,.08);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .mob-textarea{
    min-height:42px;
    padding:10px 13px !important;
    border-radius:22px !important;
  }
  .mob-plus-btn,.mob-send-btn{
    width:42px;height:42px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.1 Mobile Tabs + Header Polish — CSS ONLY
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .tb{
    background:rgba(255,255,255,.68);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(31,36,48,.055);
  }
  .chip{
    min-height:32px !important;
    padding:7px 14px !important;
    border-radius:999px !important;
    border:1px solid rgba(255,255,255,.48) !important;
    filter:saturate(.62) brightness(1.08);
    box-shadow:
      inset 0 0 0 999px rgba(255,255,255,.14),
      0 8px 18px rgba(25,31,45,.055) !important;
    opacity:.92 !important;
  }
  .chip.fr{filter:saturate(.72) brightness(1.08)}
  .mob-unified-hdr{
    color:#222426 !important;
    border-bottom:1px solid rgba(31,36,48,.10) !important;
    box-shadow:0 1px 0 rgba(255,255,255,.72) !important;
  }
  .mob-board-name{
    color:#222426 !important;
    text-shadow:none !important;
  }
  .mob-nav-btn,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button{
    background:rgba(255,255,255,.72) !important;
    color:#4b5563 !important;
    border:1px solid rgba(31,36,48,.075) !important;
    box-shadow:0 6px 16px rgba(25,31,45,.045) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   v141.2 Mobile Boundary + Header Color Restore — CSS ONLY
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .row{
    border:1px solid rgba(31,36,48,.16) !important;
    box-shadow:0 12px 30px rgba(25,31,45,.080),0 1px 5px rgba(25,31,45,.055) !important;
    background:rgba(255,255,255,.92) !important;
  }
  .mobbdy .row + .row{margin-top:12px !important}
  .mob-unified-hdr{
    position:relative !important;
    overflow:hidden !important;
    color:rgba(28,33,40,.94) !important;
    min-height:54px !important;
  }
  .mob-unified-hdr::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.44));
    pointer-events:none;
    z-index:0;
  }
  .mob-unified-hdr > *{position:relative;z-index:1}
  .mob-board-name{
    color:rgba(25,30,38,.96) !important;
    font-weight:900 !important;
    text-shadow:0 1px 0 rgba(255,255,255,.45) !important;
  }
  .mob-nav-btn,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button{
    color:rgba(36,43,53,.78) !important;
    background:rgba(255,255,255,.54) !important;
    border:1px solid rgba(31,36,48,.105) !important;
    box-shadow:0 6px 16px rgba(25,31,45,.065) !important;
  }
  .mob-nav-btn:active,
  .mob-unified-hdr .ib:active,
  .mob-unified-hdr button:active{
    background:rgba(255,255,255,.82) !important;
    color:rgba(20,24,30,.94) !important;
  }
  .chip{
    filter:saturate(.78) brightness(1.04) !important;
    box-shadow:inset 0 0 0 999px rgba(255,255,255,.08),0 8px 18px rgba(25,31,45,.070) !important;
  }
  .chip.fr{
    filter:saturate(.90) brightness(1.02) !important;
    box-shadow:inset 0 0 0 999px rgba(255,255,255,.035),0 10px 22px rgba(25,31,45,.085) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.3 Mobile Header Detail Fix — CSS ONLY
   요청 반영:
   1) 모바일 우측 메뉴 버튼/메뉴 잘림 방지
   2) 헤더의 자물쇠/눈표시 제거
   3) 모바일 보드 제목 폰트 축소 및 정확한 중앙 정렬
   기능/JS/DOM/이벤트/동기화 수정 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mobbrd,
  .mob-unified-hdr,
  .mob-hdr-right,
  .mob-hdr-right > div{
    overflow:visible !important;
  }

  .mob-unified-hdr{
    min-height:50px !important;
    padding:8px 10px !important;
    gap:5px !important;
  }

  .mob-board-name{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    max-width:calc(100% - 170px) !important;
    font-size:16px !important;
    line-height:1.05 !important;
    font-weight:820 !important;
    letter-spacing:-.045em !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .mob-board-name i,
  .mob-unified-hdr .ti-lock,
  .mob-unified-hdr .ti-lock-open,
  .mob-unified-hdr .ti-eye,
  .mob-unified-hdr .ti-eye-off,
  .mob-unified-hdr .ti-eye-x,
  .mob-unified-hdr .ti-lock-square,
  .mob-unified-hdr .ti-lock-access{
    display:none !important;
  }

  .mob-hdr-right{
    gap:4px !important;
    margin-left:auto !important;
    margin-right:2px !important;
    z-index:5 !important;
  }

  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.mob-nav-btn){
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    border-radius:10px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    font-size:17px !important;
  }

  .mob-nav-btn{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    font-size:16px !important;
    z-index:4 !important;
  }

  .mob-unified-hdr .bmenu{
    top:calc(100% + 8px) !important;
    right:0 !important;
    z-index:2147482500 !important;
    min-width:178px !important;
    overflow:hidden !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.4 Mobile Board Title Typography Tighten — CSS ONLY
   요청: 모바일 메모장 제목 폰트가 과하게 크고 답답한 문제 보정
   기능/JS/DOM/이벤트/동기화/업로드/공유/삭제 수정 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-unified-hdr{
    min-height:46px !important;
    padding:7px 9px !important;
  }

  .mob-board-name{
    max-width:calc(100% - 158px) !important;
    font-size:13.5px !important;
    line-height:1.08 !important;
    font-weight:720 !important;
    letter-spacing:-.035em !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    color:rgba(28,32,39,.94) !important;
    text-shadow:none !important;
  }

  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.mob-nav-btn){
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    border-radius:9px !important;
    font-size:15px !important;
  }

  .mob-nav-btn{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    border-radius:16px !important;
    font-size:15px !important;
  }

  .mob-hdr-right{
    gap:3px !important;
    margin-right:1px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.5 Header Lock/Eye Remove — CSS ONLY
   요청: 헤더의 자물쇠/눈표시 완전 제거
   기능/JS/DOM/이벤트/동기화/업로드/공유/삭제 수정 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-board-name i,
  .mob-unified-hdr .ti-lock,
  .mob-unified-hdr .ti-lock-open,
  .mob-unified-hdr .ti-eye,
  .mob-unified-hdr .ti-eye-off,
  .mob-unified-hdr .ti-eye-x,
  .mob-unified-hdr .ti-lock-square,
  .mob-unified-hdr .ti-lock-access{
    display:none !important;
    width:0 !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    opacity:0 !important;
    visibility:hidden !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   v141.6 Mobile Header Focus Fix
   - 모바일 상단탭 메뉴가 본문 뒤로 숨거나 잘리는 문제 보정
   - 헤더 자물쇠/눈표시 완전 제거 보강
   - 기능 로직 변경 없음: 헤더 표시/레이어만 정리
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mobbrd{
    overflow:visible !important;
    position:relative !important;
    isolation:isolate !important;
  }
  .mob-unified-hdr{
    position:relative !important;
    overflow:visible !important;
    z-index:5000 !important;
    display:grid !important;
    grid-template-columns:36px minmax(0,1fr) 66px 36px !important;
    align-items:center !important;
    column-gap:4px !important;
    min-height:46px !important;
    padding:7px 8px !important;
  }
  .mob-unified-hdr::before{
    z-index:0 !important;
  }
  .mob-unified-hdr > *{
    position:relative !important;
    z-index:2 !important;
  }
  .mob-board-name{
    position:static !important;
    transform:none !important;
    grid-column:2 !important;
    justify-self:center !important;
    align-self:center !important;
    max-width:100% !important;
    min-width:0 !important;
    padding:0 4px !important;
    font-size:13.2px !important;
    line-height:1.1 !important;
    font-weight:720 !important;
    letter-spacing:-.035em !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    text-align:center !important;
  }
  .mob-board-name i,
  .mob-board-name .ti,
  .mob-unified-hdr > i,
  .mob-unified-hdr .ti-lock,
  .mob-unified-hdr .ti-lock-open,
  .mob-unified-hdr .ti-lock-square,
  .mob-unified-hdr .ti-lock-access,
  .mob-unified-hdr .ti-eye,
  .mob-unified-hdr .ti-eye-off,
  .mob-unified-hdr .ti-eye-x{
    display:none !important;
    width:0 !important;
    min-width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .mob-hdr-right{
    grid-column:3 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    gap:4px !important;
    margin:0 !important;
    overflow:visible !important;
    z-index:6000 !important;
  }
  .mob-hdr-right > div{
    position:relative !important;
    overflow:visible !important;
    z-index:6001 !important;
  }
  .mob-unified-hdr .wb2,
  .mob-unified-hdr button:not(.mob-nav-btn){
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    border-radius:9px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
  }
  .mob-nav-btn{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    z-index:5500 !important;
  }
  .mob-unified-hdr .bmenu{
    position:absolute !important;
    top:calc(100% + 8px) !important;
    right:0 !important;
    left:auto !important;
    z-index:2147483000 !important;
    min-width:188px !important;
    max-width:calc(100vw - 22px) !important;
    overflow:visible !important;
    transform:none !important;
    box-shadow:0 18px 46px rgba(15,23,42,.18),0 3px 10px rgba(15,23,42,.10) !important;
  }
  .mobbdy{
    position:relative !important;
    z-index:1 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.7 Header Height Trim CSS Only
   - 상단 메모탭/보드 헤더 높이만 소폭 축소
   - 기능/JS/이벤트 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-unified-hdr{
    min-height:40px !important;
    height:40px !important;
    padding:4px 8px !important;
    border-radius:20px 20px 0 0 !important;
  }
  .mob-board-name{
    font-size:12.6px !important;
    line-height:1.05 !important;
    font-weight:680 !important;
  }
  .mob-unified-hdr .wb2,
  .mob-unified-hdr button:not(.mob-nav-btn){
    width:25px !important;
    height:25px !important;
    min-width:25px !important;
    border-radius:8px !important;
  }
  .mob-nav-btn{
    width:29px !important;
    height:29px !important;
    min-width:29px !important;
  }
  .mobbdy{
    border-top-left-radius:0 !important;
    border-top-right-radius:0 !important;
  }
}
@media (min-width:601px){
  .bh,
  .board-head,
  .board-header{
    min-height:54px !important;
    height:54px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v141.8 Mobile Add Board Chip Visibility — CSS ONLY
   - 모바일 상단칩의 새 메모판(+) 버튼이 흰색이라 안 보이는 문제 수정
   - 기능/JS/이벤트/동기화/업로드/공유/삭제 수정 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  /* 상단 보드칩 영역의 + 새 메모판 버튼: inline style보다 강하게 보정 */
  .chip[onclick="oNM()"],
  .chip.chip-h[onclick="oNM()"],
  button.chip[onclick="oNM()"],
  button.chip.chip-h[onclick="oNM()"]{
    width:34px !important;
    min-width:34px !important;
    height:34px !important;
    padding:0 !important;
    border-radius:17px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 34px !important;
    background:linear-gradient(180deg, rgba(255,125,24,.98), rgba(231,98,0,.98)) !important;
    border:1px solid rgba(215,91,0,.42) !important;
    color:#fff !important;
    box-shadow:0 6px 16px rgba(255,111,0,.22), inset 0 1px 0 rgba(255,255,255,.32) !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .chip[onclick="oNM()"] i,
  .chip.chip-h[onclick="oNM()"] i,
  button.chip[onclick="oNM()"] i,
  button.chip.chip-h[onclick="oNM()"] i{
    color:#fff !important;
    font-size:18px !important;
    line-height:1 !important;
    opacity:1 !important;
    text-shadow:0 1px 2px rgba(0,0,0,.16) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v143 Mobile/Web Header Menu Layer Guard — CSS ONLY
   - 모바일 헤더 메뉴도 보드 뒤로 숨지 않도록 레이어만 보강
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mobbrd,
  .mob-unified-hdr,
  .mob-hdr-right,
  .mob-hdr-right > div{
    overflow:visible !important;
  }
  .mob-unified-hdr:has(.bmenu.op),
  .mob-hdr-right:has(.bmenu.op){
    z-index:2147482000 !important;
  }
  .mob-unified-hdr .bmenu.op{
    display:block !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    right:0 !important;
    z-index:2147483000 !important;
    min-width:188px !important;
    max-width:calc(100vw - 22px) !important;
    background:rgba(255,255,255,.98) !important;
    color:#242832 !important;
    border-radius:18px !important;
    border:1px solid rgba(31,36,48,.12) !important;
    box-shadow:0 22px 60px rgba(15,23,42,.18),0 4px 12px rgba(15,23,42,.08) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   v146 Mobile Pastel Board Identity — CSS ONLY
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .chip[style*="--board-color"]{
    background:color-mix(in srgb, var(--board-color) 14%, #fff) !important;
    color:color-mix(in srgb, var(--board-color) 78%, #1f2430) !important;
    border:1px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
    box-shadow:0 5px 14px rgba(25,31,45,.055), inset 0 1px 0 rgba(255,255,255,.74) !important;
    filter:none !important;
    text-shadow:none !important;
    opacity:1 !important;
  }
  .chip[style*="--board-color"].fr{
    background:color-mix(in srgb, var(--board-color) 20%, #fff) !important;
    border-color:color-mix(in srgb, var(--board-color) 46%, rgba(31,36,48,.14)) !important;
    color:color-mix(in srgb, var(--board-color) 86%, #111827) !important;
  }
  .mobbrd[style*="--board-color"]{
    background:color-mix(in srgb, var(--board-color) 5%, #fff) !important;
    border:1.5px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
    box-shadow:0 12px 30px rgba(25,31,45,.075),0 1px 4px rgba(25,31,45,.055) !important;
  }
  .mob-unified-hdr[style*="--board-color"]{
    background:linear-gradient(180deg, color-mix(in srgb, var(--board-color) 18%, #fff), color-mix(in srgb, var(--board-color) 12%, #fff)) !important;
    border-bottom:1.5px solid color-mix(in srgb, var(--board-color) 35%, rgba(31,36,48,.14)) !important;
  }
  .mob-unified-hdr[style*="--board-color"]::before{
    display:none !important;
  }
  .mob-unified-hdr[style*="--board-color"] .mob-board-name{
    color:color-mix(in srgb, var(--board-color) 78%, #172033) !important;
    font-weight:760 !important;
    text-shadow:none !important;
  }
  .mob-unified-hdr[style*="--board-color"] .wb2,
  .mob-unified-hdr[style*="--board-color"] button:not(.mob-nav-btn),
  .mob-unified-hdr[style*="--board-color"] .mob-nav-btn{
    background:rgba(255,255,255,.70) !important;
    color:color-mix(in srgb, var(--board-color) 62%, #364152) !important;
    border:1px solid color-mix(in srgb, var(--board-color) 24%, rgba(31,36,48,.12)) !important;
    box-shadow:0 5px 14px rgba(25,31,45,.055) !important;
  }
  .mobbrd[style*="--board-color"] .mobbdy{
    background:linear-gradient(180deg, color-mix(in srgb, var(--board-color) 4%, #fff), color-mix(in srgb, var(--board-color) 8%, #fff)) !important;
  }
  .mobbrd[style*="--board-color"] .mob-input-area{
    background:color-mix(in srgb, var(--board-color) 4%, rgba(255,255,255,.94)) !important;
    border-top:1px solid color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.10)) !important;
  }
  .mobbrd[style*="--board-color"] .mob-textarea{
    border-color:color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.12)) !important;
  }
  .mobbdy .row{
    border-color:rgba(31,36,48,.18) !important;
    box-shadow:0 9px 22px rgba(25,31,45,.075),0 1px 4px rgba(25,31,45,.055) !important;
  }
}


/* ✅ V160: 모바일 완료 메모 취소선 제거 + 완료 표시 고정 정렬 */
.row.dn .rt,
.row.dn .thread-text,
.row.dn .pdf-title,
.row.dn .vmemo-nm{ text-decoration:none!important; }
.row.dn .rsub::before{
  content:'완료';display:inline-flex;align-items:center;justify-content:center;height:15px;
  padding:0 6px;margin-right:6px;border-radius:999px;background:rgba(34,197,94,.12);
  color:#15803d;border:1px solid rgba(34,197,94,.24);font-size:9px;font-weight:800;line-height:1;
}

/* ═══════════════════════════════════════════════════════════════
   v161 Mobile Header Icon Center Hard Fix
   - 검색 / 메뉴 / 좌우 이동 아이콘을 버튼 정중앙에 고정
   - 기능 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn){
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    vertical-align:middle !important;
    box-sizing:border-box !important;
    padding:0 !important;
    line-height:1 !important;
  }
  .mob-unified-hdr .mob-nav-btn > i,
  .mob-unified-hdr .wb2 > i,
  .mob-unified-hdr .ib > i,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i,
  .mob-hdr-right .ti,
  .mob-nav-btn .ti{
    display:block !important;
    width:1em !important;
    height:1em !important;
    line-height:1 !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    transform:none !important;
    text-align:center !important;
    flex:0 0 auto !important;
  }
  .mob-hdr-right{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
  }
  .mob-hdr-right > div{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V162 APK Mobile Header Icon + Font Size Polish
   - 검색/메뉴/좌우 화살표 아이콘의 실제 glyph를 버튼 정중앙에 강제 고정
   - 앱 메모장 제목 / 메모장 칩 글씨를 약 1.5pt(≈2px) 축소
   - 기능/이벤트/저장/공유/삭제/업로드 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  /* 메모장 제목 1.5pt 축소 */
  .mob-board-name{
    font-size:10.6px !important;
    line-height:1 !important;
    letter-spacing:-.035em !important;
  }

  /* 메모장 칩 글씨 1.5pt 축소 */
  .tb-chips-scroll .chip,
  .chip,
  .chip.chip-h,
  button.chip,
  button.chip.chip-h{
    font-size:9.5px !important;
    line-height:1 !important;
  }

  /* 버튼 박스 자체를 정확한 정사각 중앙정렬로 통일 */
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn){
    display:inline-grid !important;
    place-items:center !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    vertical-align:middle !important;
    box-sizing:border-box !important;
    padding:0 !important;
    margin:0 !important;
    line-height:0 !important;
    overflow:hidden !important;
  }

  .mob-unified-hdr .wb2,
  .mob-unified-hdr button:not(.mob-nav-btn):not(.bmi):not(.mam-item):not(.mob-media-btn){
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    max-width:26px !important;
    min-height:26px !important;
    max-height:26px !important;
    border-radius:9px !important;
  }

  .mob-unified-hdr .mob-nav-btn{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    max-width:30px !important;
    min-height:30px !important;
    max-height:30px !important;
    border-radius:999px !important;
  }

  /* Tabler icon font는 baseline 때문에 1~2px 떠 보이므로 ::before를 중앙 고정 */
  .mob-unified-hdr .mob-nav-btn > i,
  .mob-unified-hdr .wb2 > i,
  .mob-unified-hdr .ib > i,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i,
  .mob-hdr-right .ti,
  .mob-nav-btn .ti{
    display:grid !important;
    place-items:center !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    min-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    line-height:0 !important;
    font-size:16px !important;
    position:relative !important;
    top:0 !important;
    left:0 !important;
    transform:none !important;
    text-align:center !important;
  }

  .mob-unified-hdr .mob-nav-btn > i::before,
  .mob-unified-hdr .wb2 > i::before,
  .mob-unified-hdr .ib > i::before,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i::before,
  .mob-hdr-right .ti::before,
  .mob-nav-btn .ti::before{
    display:block !important;
    width:1em !important;
    height:1em !important;
    line-height:1 !important;
    margin:0 !important;
    padding:0 !important;
    text-align:center !important;
    position:absolute !important;
    top:50% !important;
    left:50% !important;
    transform:translate(-50%,-50%) !important;
  }

  .mob-hdr-right,
  .mob-hdr-right > div{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V164 APK Topbar Minimal Icons
   - 앱 메모장 상단바 검색/메뉴/좌우 화살표 원형·테두리·그림자 제거
   - 보이는 UI는 심볼만, 터치 영역은 기존 크기 유지
   - 기존 기능/이벤트/저장/공유/삭제/업로드 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn){
    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    border-radius:0 !important;
    -webkit-tap-highlight-color:transparent !important;
  }

  .mob-unified-hdr .mob-nav-btn:hover,
  .mob-unified-hdr .wb2:hover,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):hover,
  .mob-unified-hdr .mob-nav-btn:active,
  .mob-unified-hdr .wb2:active,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):active{
    background:transparent !important;
    box-shadow:none !important;
    transform:none !important;
  }

  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-hdr-right .wb2{
    color:rgba(255,255,255,.92) !important;
  }

  .mob-unified-hdr .mob-nav-btn:disabled{
    opacity:.28 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  .mob-unified-hdr .mob-nav-btn > i,
  .mob-unified-hdr .wb2 > i,
  .mob-hdr-right .ti,
  .mob-nav-btn .ti{
    color:currentColor !important;
    font-size:18px !important;
    line-height:1 !important;
    opacity:1 !important;
  }

  .mob-unified-hdr .wb2 > i,
  .mob-hdr-right .ti{
    font-size:19px !important;
  }

  .mob-unified-hdr{
    align-items:center !important;
  }

  .mob-board-name{
    left:50% !important;
    transform:translateX(-50%) !important;
    text-align:center !important;
  }
}

/* ═══════════════════════════════════════════════════════
   V167 APK bottom input minimal symbols
   - 하단 + / 전송 버튼 원형·배경·테두리 제거
   - 터치영역은 유지, 심볼만 메모장 색상 계열로 표시
   ═══════════════════════════════════════════════════════ */
@media (max-width: 600px){
  .mob-input-row .mob-plus-btn,
  .mob-input-row .send-btn,
  .mob-input-row .mob-send-btn{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    flex:0 0 42px !important;
    border:none !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    color:var(--board-color, var(--acc, #F97316)) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    margin:0 !important;
    -webkit-tap-highlight-color:transparent;
  }

  .mob-input-row .mob-plus-btn i,
  .mob-input-row .send-btn i,
  .mob-input-row .mob-send-btn i{
    display:block !important;
    width:1em !important;
    height:1em !important;
    line-height:1 !important;
    font-size:18px !important;
    color:currentColor !important;
    transform:none !important;
  }

  .mob-input-row .mob-plus-btn i{
    position:relative !important;
    top:-2px !important;
    left:2px !important;
  }

  .mob-input-row .send-btn i,
  .mob-input-row .mob-send-btn i{
    font-size:18px !important;
    position:relative !important;
    top:-2px !important;
    left:-7px !important;
  }

  .mob-input-row .mob-plus-btn:active,
  .mob-input-row .send-btn:active,
  .mob-input-row .mob-send-btn:active{
    background:transparent !important;
    box-shadow:none !important;
    transform:scale(.92) !important;
    opacity:.72 !important;
  }
}

/* ═══════════════════════════════════════════════════════
   V172 Mobile Header Title Center Safe Patch — CSS ONLY
   - 메모장 상단바 제목만 화면 중앙에 고정
   - 글씨크기/줄높이/버튼크기/아이콘정렬/JS/HTML 변경 없음
   ═══════════════════════════════════════════════════════ */
@media (max-width:600px){
  .mob-unified-hdr{
    position:relative !important;
  }
  .mob-unified-hdr .mob-board-name{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    grid-column:auto !important;
    justify-self:auto !important;
    align-self:auto !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:calc(100% - 160px) !important;
    z-index:3 !important;
    pointer-events:auto !important;
  }
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .mob-hdr-right{
    position:relative !important;
    z-index:4 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V173 Mobile Active Board Chip Visibility — SAFE CSS ONLY
   - 앱 상단 메모장 칩에서 현재 보드만 또렷하게 표시
   - 비활성 칩은 연하게 표시
   - 크기/높이/줄간격/아이콘/기능 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  .tb-chips-scroll .chip.chip-h[style*="--board-color"]{
    opacity:.42 !important;
    filter:saturate(.58) brightness(1.08) !important;
  }
  .tb-chips-scroll .chip.chip-h[style*="--board-color"].fr{
    opacity:1 !important;
    filter:saturate(1.08) brightness(1) !important;
    box-shadow:0 5px 14px rgba(25,31,45,.08), inset 0 1px 0 rgba(255,255,255,.78) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V216 Mobile Board Menu Text Restore — CSS ONLY
   - 앱/모바일 메모장 메뉴(.bmenu)에서 아이콘 중앙만 보이고 텍스트가 사라지는 문제 보정
   - 원인: 모바일 헤더 아이콘 중앙정렬 규칙이 .bmenu 내부 아이콘(.ti)까지 과적용됨
   - 기능/저장/공유/삭제/동기화/파일명/앨범 picker/뒤로가기 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  html.capacitor .mob-unified-hdr .bmenu,
  body.capacitor .mob-unified-hdr .bmenu,
  html.capacitor .mob-hdr-right .bmenu,
  body.capacitor .mob-hdr-right .bmenu{
    min-width:214px !important;
    max-width:calc(100vw - 28px) !important;
    overflow:hidden !important;
    background:rgba(255,255,255,.98) !important;
    color:#242832 !important;
    border-radius:18px !important;
    border:1px solid rgba(31,36,48,.12) !important;
    box-shadow:0 22px 60px rgba(15,23,42,.18),0 4px 12px rgba(15,23,42,.08) !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .msl,
  body.capacitor .mob-unified-hdr .bmenu .msl,
  html.capacitor .mob-hdr-right .bmenu .msl,
  body.capacitor .mob-hdr-right .bmenu .msl{
    display:flex !important;
    align-items:center !important;
    min-height:38px !important;
    height:38px !important;
    padding:0 16px !important;
    margin:0 !important;
    box-sizing:border-box !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    color:rgba(31,36,48,.62) !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .mi,
  body.capacitor .mob-unified-hdr .bmenu .mi,
  html.capacitor .mob-hdr-right .bmenu .mi,
  body.capacitor .mob-hdr-right .bmenu .mi{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:12px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:46px !important;
    height:46px !important;
    padding:0 16px !important;
    margin:0 !important;
    box-sizing:border-box !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1.2 !important;
    color:#242832 !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .mi i,
  body.capacitor .mob-unified-hdr .bmenu .mi i,
  html.capacitor .mob-hdr-right .bmenu .mi i,
  body.capacitor .mob-hdr-right .bmenu .mi i,
  html.capacitor .mob-unified-hdr .bmenu .mi > .ti,
  body.capacitor .mob-unified-hdr .bmenu .mi > .ti,
  html.capacitor .mob-hdr-right .bmenu .mi > .ti,
  body.capacitor .mob-hdr-right .bmenu .mi > .ti{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 20px !important;
    width:20px !important;
    min-width:20px !important;
    max-width:20px !important;
    height:20px !important;
    min-height:20px !important;
    max-height:20px !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    font-size:18px !important;
    line-height:1 !important;
    color:rgba(31,36,48,.72) !important;
    text-align:center !important;
    position:static !important;
    top:auto !important;
    left:auto !important;
    transform:none !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .mi i::before,
  body.capacitor .mob-unified-hdr .bmenu .mi i::before,
  html.capacitor .mob-hdr-right .bmenu .mi i::before,
  body.capacitor .mob-hdr-right .bmenu .mi i::before{
    display:block !important;
    width:1em !important;
    height:1em !important;
    line-height:1 !important;
    margin:0 !important;
    padding:0 !important;
    text-align:center !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .mi.dng,
  body.capacitor .mob-unified-hdr .bmenu .mi.dng,
  html.capacitor .mob-hdr-right .bmenu .mi.dng,
  body.capacitor .mob-hdr-right .bmenu .mi.dng{
    color:var(--danger,#ef4444) !important;
  }
  html.capacitor .mob-unified-hdr .bmenu .mi.dng i,
  body.capacitor .mob-unified-hdr .bmenu .mi.dng i,
  html.capacitor .mob-hdr-right .bmenu .mi.dng i,
  body.capacitor .mob-hdr-right .bmenu .mi.dng i{
    color:var(--danger,#ef4444) !important;
  }

  html.capacitor .mob-unified-hdr .bmenu .mdv,
  body.capacitor .mob-unified-hdr .bmenu .mdv,
  html.capacitor .mob-hdr-right .bmenu .mdv,
  body.capacitor .mob-hdr-right .bmenu .mdv{
    height:1px !important;
    margin:0 !important;
    background:rgba(31,36,48,.10) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   v217 Mobile board menu label restore — CSS/markup display only
   - 기능/클릭/저장/삭제/동기화/파일명/뒤로가기 변경 없음
   - 모바일 앱 메뉴에서 아이콘만 보이고 텍스트가 사라지는 문제만 보정
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  html.capacitor .bmenu,
  body.capacitor .bmenu{
    min-width:216px !important;
    max-width:calc(100vw - 24px) !important;
    background:rgba(255,255,255,.98) !important;
    color:#242832 !important;
    overflow:hidden !important;
  }

  html.capacitor .bmenu .msl,
  body.capacitor .bmenu .msl{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 16px !important;
    color:rgba(31,36,48,.58) !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    text-align:left !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  html.capacitor .bmenu .mi,
  body.capacitor .bmenu .mi{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:12px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    width:100% !important;
    padding:0 16px !important;
    margin:0 !important;
    box-sizing:border-box !important;
    color:#242832 !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1.2 !important;
    text-align:left !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
    overflow:hidden !important;
  }

  html.capacitor .bmenu .mi > i,
  body.capacitor .bmenu .mi > i,
  html.capacitor .bmenu .mi > .ti,
  body.capacitor .bmenu .mi > .ti{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 20px !important;
    width:20px !important;
    min-width:20px !important;
    height:20px !important;
    min-height:20px !important;
    margin:0 !important;
    padding:0 !important;
    color:rgba(31,36,48,.72) !important;
    font-size:18px !important;
    line-height:1 !important;
    opacity:1 !important;
    visibility:visible !important;
    position:static !important;
    transform:none !important;
  }

  html.capacitor .bmenu .mi-label,
  body.capacitor .bmenu .mi-label{
    display:inline-block !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    color:inherit !important;
    font:inherit !important;
    line-height:1.2 !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    opacity:1 !important;
    visibility:visible !important;
    position:static !important;
    transform:none !important;
  }

  html.capacitor .bmenu .mi.dng,
  body.capacitor .bmenu .mi.dng,
  html.capacitor .bmenu .mi.dng .mi-label,
  body.capacitor .bmenu .mi.dng .mi-label,
  html.capacitor .bmenu .mi.dng > i,
  body.capacitor .bmenu .mi.dng > i{
    color:var(--danger,#ef4444) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V218 Mobile Board Menu Icon/Text Alignment — CSS ONLY
   - V217에서 복구된 메뉴 텍스트를 웹처럼 아이콘 좌측 + 텍스트 우측으로 정렬
   - 글자 크기 2px 축소
   - 기능/클릭/저장/삭제/동기화/파일명/앨범 picker/뒤로가기 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  html.capacitor .bmenu,
  body.capacitor .bmenu{
    min-width:216px !important;
    max-width:calc(100vw - 24px) !important;
  }

  html.capacitor .bmenu .msl,
  body.capacitor .bmenu .msl{
    height:32px !important;
    min-height:32px !important;
    padding:0 14px !important;
    font-size:10px !important;
    line-height:1.2 !important;
    text-align:left !important;
    justify-content:flex-start !important;
  }

  html.capacitor .bmenu .mi,
  body.capacitor .bmenu .mi{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    height:40px !important;
    min-height:40px !important;
    max-height:40px !important;
    padding:0 14px !important;
    font-size:12px !important;
    line-height:1.2 !important;
    text-align:left !important;
    position:relative !important;
  }

  html.capacitor .bmenu .mi > i,
  body.capacitor .bmenu .mi > i,
  html.capacitor .bmenu .mi > i.ti,
  body.capacitor .bmenu .mi > i.ti{
    order:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 18px !important;
    width:18px !important;
    min-width:18px !important;
    max-width:18px !important;
    height:18px !important;
    min-height:18px !important;
    max-height:18px !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    font-size:16px !important;
    line-height:1 !important;
    text-align:center !important;
    pointer-events:none !important;
  }

  html.capacitor .bmenu .mi > i::before,
  body.capacitor .bmenu .mi > i::before{
    display:block !important;
    width:1em !important;
    height:1em !important;
    line-height:1 !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    transform:none !important;
    text-align:center !important;
  }

  html.capacitor .bmenu .mi > .mi-label,
  body.capacitor .bmenu .mi > .mi-label{
    order:1 !important;
    display:block !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    left:auto !important;
    top:auto !important;
    transform:none !important;
    font-size:12px !important;
    line-height:1.2 !important;
    font-weight:500 !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  html.capacitor .bmenu .mi.dng,
  body.capacitor .bmenu .mi.dng,
  html.capacitor .bmenu .mi.dng > i,
  body.capacitor .bmenu .mi.dng > i,
  html.capacitor .bmenu .mi.dng > .mi-label,
  body.capacitor .bmenu .mi.dng > .mi-label{
    color:var(--danger,#ef4444) !important;
  }
}


/* v220 — 입력창 기본 복사/붙여넣기 메뉴 복구: 기능 로직 미변경 */
input, textarea, [contenteditable="true"], .ea, .thread-inp, .mob-textarea {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default !important;
  touch-action: manipulation;
}


/* v231 — 메모 표시 텍스트만 Android/Web 기본 선택·복사 허용 (드래그/파일/뷰어 로직 미변경) */
.rt, .rt-line, .rt-line .rt {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default !important;
  cursor: text;
}


/* v234: 모바일/앱 헤더 메뉴에서도 색상 팔레트 점이 실제 색으로 보이도록 한정 보정 */
.mob-unified-hdr .bmenu .bc-pal .bc-dot-v234,
.bmenu .bc-pal .bc-dot-v234{
  background:var(--bc) !important;
}


/* v235: 모바일/APK 메뉴 색상 팔레트 표시 보정 */
.mob-unified-hdr .bmenu .bc-pal,
.mob-hdr-right .bmenu .bc-pal,
.bmenu .bc-pal{
  display:none;
  align-items:center !important;
  gap:9px !important;
  padding:10px 12px 12px !important;
  flex-wrap:wrap !important;
  min-height:48px !important;
  background:rgba(255,255,255,.98) !important;
}
.mob-unified-hdr .bmenu .bc-pal .bc-dot-v235,
.mob-hdr-right .bmenu .bc-pal .bc-dot-v235,
.bmenu .bc-pal .bc-dot-v235{
  display:inline-block !important;
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  min-height:26px !important;
  flex:0 0 26px !important;
  border-radius:999px !important;
  border:2px solid #fff !important;
  box-shadow:0 2px 8px rgba(15,23,42,.22) !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
}


/* NC11.6.4 — bottom-first importance chip labels + tab cycling polish */
.web-draft-tags,
.mob-draft-tags{
  position:relative !important;
  justify-content:center !important;
  align-items:center !important;
  gap:12px !important;
  overflow:visible !important;
}
.web-draft-tags{ padding:2px 18px 7px 18px !important; }
.mob-draft-tags{ padding:2px 18px 7px 18px !important; }
.web-draft-tags .mob-draft-tag,
.mob-draft-tags .mob-draft-tag{
  position:relative !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:8px !important;
  min-height:8px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, color-mix(in srgb, var(--tag) 88%, #fff), var(--tag)) !important;
  border:1px solid rgba(255,255,255,.9) !important;
  box-shadow:0 4px 11px color-mix(in srgb, var(--tag) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.75) !important;
  transition:transform .14s ease, height .14s ease, box-shadow .14s ease, filter .14s ease !important;
}
.web-draft-tags .mob-draft-tag.on,
.mob-draft-tags .mob-draft-tag.on{
  height:10px !important;
  transform:translateY(-1px) !important;
  border:2px solid rgba(255,255,255,.98) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--tag) 16%, transparent), 0 7px 18px color-mix(in srgb, var(--tag) 28%, transparent), inset 0 1px 0 rgba(255,255,255,.85) !important;
}
.web-draft-tags .mob-draft-tag::after,
.mob-draft-tags .mob-draft-tag::after{
  content:attr(data-tip) !important;
  position:absolute !important;
  left:50% !important;
  bottom:calc(100% + 5px) !important;
  transform:translateX(-50%) translateY(2px) !important;
  z-index:9999 !important;
  white-space:nowrap !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#6b7280 !important;
  font-size:10px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:-.01em !important;
  opacity:0 !important;
  pointer-events:none !important;
  box-shadow:none !important;
  transition:opacity .12s ease, transform .12s ease !important;
}
.web-draft-tags .mob-draft-tag::before,
.mob-draft-tags .mob-draft-tag::before{ display:none !important; content:none !important; }
.web-draft-tags .mob-draft-tag:hover::after,
.web-draft-tags .mob-draft-tag:focus-visible::after,
.web-draft-tags .mob-draft-tag:active::after,
.web-draft-tags .mob-draft-tag.tip-on::after,
.mob-draft-tags .mob-draft-tag:hover::after,
.mob-draft-tags .mob-draft-tag:focus-visible::after,
.mob-draft-tags .mob-draft-tag:active::after,
.mob-draft-tags .mob-draft-tag.tip-on::after{
  opacity:1 !important;
  transform:translateX(-50%) translateY(0) !important;
}
.web-draft-tags .mob-draft-tag[data-tip=""]::after,
.mob-draft-tags .mob-draft-tag[data-tip=""]::after{
  display:none !important;
  content:none !important;
}
@media (max-width:600px){
  .mob-draft-tags{ padding:2px 18px 7px 18px !important; gap:11px !important; }
  .mob-draft-tags .mob-draft-tag{ width:32px !important; min-width:32px !important; max-width:32px !important; }
}

/* ─────────────────────────────────────────────
   NC11.6.9 — APK TOP SAFE GAP FINAL
   목적: 상단 상태줄 숨김 후 APK에서 메모판 칩바/상단 헤더가 기기 상태영역에 붙어 잘리는 현상 방지
   원칙: 기능 로직(saveAll/loadAll/Realtime/점검모드/계정차단) 미수정, mobile.css 후순위 CSS 최소 패치만 적용
   주의: 기존 하단 광고/네비게이션 safe-area 구조는 건드리지 않음
   ───────────────────────────────────────────── */
@media (max-width:600px){
  html.capacitor #app,
  body.capacitor #app{
    padding-top:max(24px, env(safe-area-inset-top)) !important;
    box-sizing:border-box !important;
  }
}


/* ─────────────────────────────────────────────
   NC11.6.10 — MOBILE CHIP ACTIONS MOVED TO MENU
   목적: 앱/APK 메모칩 영역에서 새 메모판/글씨크기 버튼을 제거하고 우측 메뉴탭으로 통합
   원칙: 하단 광고/상단 safe-area/기존 기능 로직 미수정
   ───────────────────────────────────────────── */
@media (max-width:600px){
  .tb-settings-menu{
    min-width:150px !important;
    border-radius:16px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V274 — 모바일 메모장칩: 현재 칩 1개 + 아래 탭다운
   기존 스와이프 칩바를 앱에서만 단순화한다.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  #tb.tb {
    justify-content: flex-start !important;
    align-items: center !important;
    overflow: visible !important;
  }

  #tb .tb-active-chip-wrap-v274 {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  #tb .mob-active-board-chip-v274,
  #tb .chip.mob-active-board-chip-v274,
  #tb .chip.chip-h.mob-active-board-chip-v274 {
    min-width: 0 !important;
    max-width: min(220px, calc(100vw - 72px)) !important;
    height: 28px !important;
    padding: 3px 10px 3px 12px !important;
    border-radius: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    opacity: 1 !important;
    transform: none !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .10) !important;
  }

  #tb .mob-active-chip-label-v274 {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    line-height: 1 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }

  #tb .mob-active-chip-caret-v274 {
    flex: 0 0 auto !important;
    font-size: 13px !important;
    line-height: 1 !important;
    opacity: .95 !important;
  }

  .mob-board-dropdown-v274 {
    position: fixed !important;
    z-index: 99999 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(139,92,246,.22) !important;
    border-radius: 18px !important;
    padding: 8px !important;
    box-shadow: 0 18px 40px rgba(17,24,39,.18) !important;
    backdrop-filter: blur(12px) !important;
  }

  .mob-board-dropdown-item-v274 {
    width: 100% !important;
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border: none !important;
    border-radius: 13px !important;
    background: transparent !important;
    color: var(--txt) !important;
    font-family: inherit !important;
    font-size: calc(var(--memo-size, 11px) + 1.5px) !important;
    font-weight: 650 !important;
    text-align: left !important;
  }

  .mob-board-dropdown-item-v274.active {
    background: rgba(139,92,246,.10) !important;
  }

  .mob-board-dropdown-item-v274:active {
    background: rgba(139,92,246,.16) !important;
  }

  .mob-board-dropdown-dot-v274 {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    flex: 0 0 auto !important;
    background: var(--board-color, #F97316) !important;
    box-shadow: 0 0 0 3px rgba(255,255,255,.85), 0 1px 5px rgba(0,0,0,.18) !important;
  }

  .mob-board-dropdown-name-v274 {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .mob-board-dropdown-item-v274 i {
    flex: 0 0 auto !important;
    font-size: 16px !important;
    color: #8B5CF6 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   V277 — 모바일 현재 메모장칩 우측 미세 보정
   목적: V276 기준에서 메모장칩을 아주 조금만 우측으로 이동해 좌측 정렬감을 맞춘다.
   범위: CSS 위치 보정만. 앱 로직/웹/저장/Realtime/미디어/문서/차단/점검모드 변경 없음.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  #tb.tb {
    padding-left: 0 !important;
  }

  #tb .tb-active-chip-wrap-v274 {
    margin-left: 0 !important;
  }
}

/* ─────────────────────────────────────────────
   V303-W3 — App header: left single chip + centered logo
   기능/저장/Realtime/DB 로직 변경 없이 모바일 헤더 표시만 정리
   ───────────────────────────────────────────── */
@media (max-width:600px){
  #tb.tb{
    position:relative !important;
    height:52px !important;
    min-height:52px !important;
    padding:0 12px !important;
    margin:0 !important;
    background:#fff !important;
    border:0 !important;
    border-bottom:1px solid rgba(249,115,22,.28) !important;
    box-shadow:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    overflow:visible !important;
  }
  #tb .tb-active-chip-wrap-v274{
    flex:1 1 0 !important;
    min-width:0 !important;
    max-width:126px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    z-index:2 !important;
  }
  #tb .mob-active-board-chip-v274,
  #tb .chip.mob-active-board-chip-v274,
  #tb .chip.chip-h.mob-active-board-chip-v274{
    height:24px !important;
    min-height:24px !important;
    width:118px !important;
    max-width:118px !important;
    padding:2px 7px 2px 8px !important;
    border-radius:999px !important;
    gap:4px !important;
    align-self:center !important;
    box-shadow:0 4px 11px rgba(15,23,42,.10) !important;
  }
  #tb .mob-active-chip-label-v274{
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:-.02em !important;
  }
  #tb .mob-active-count-v303w3{
    display:none !important;
  }
  #tb .mob-active-chip-caret-v274{
    font-size:11px !important;
    line-height:1 !important;
  }
  #tb .mobile-header-logo-v303w3{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    height:40px !important;
    width:86px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    pointer-events:auto !important;
    z-index:1 !important;
    overflow:hidden !important;
    cursor:pointer !important;
    -webkit-tap-highlight-color:transparent !important;
    touch-action:manipulation !important;
  }
  #tb .mobile-header-logo-v303w3 img{
    display:block !important;
    height:32px !important;
    width:auto !important;
    max-width:none !important;
    object-fit:contain !important;
  }
  #tb .mobile-tb-menu-btn-v303w3,
  #tb .tb-settings-btn.mobile-tb-menu-btn-v303w3{
    position:relative !important;
    z-index:2 !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    margin:0 0 0 auto !important;
    align-self:center !important;
    border-radius:999px !important;
  }
}

/* ─────────────────────────────────────────────
   V303-W3.1 — App header whitespace hard fix
   - 앱 헤더 로고/좌측 단일칩은 유지
   - 하단 작업영역을 flex로 복구하여 불필요한 여백 방지
   - 기능/저장/Realtime/DB 로직 변경 없음
   ───────────────────────────────────────────── */
@media (max-width:600px){
  #app > .wrap{
    padding-bottom:0 !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  #tb.tb{
    flex:0 0 52px !important;
    height:52px !important;
    min-height:52px !important;
  }
  #app > .wrap > .desk,
  .desk{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    margin-bottom:0 !important;
    padding-bottom:0 !important;
  }
}


/* ─────────────────────────────────────────────
   V303-W3.5 — Rounded editor input
   - 입력창 캡슐형을 둥근 사각형으로 정리
   - 장문 입력 시 네 귀퉁이 글자 잘림 방지
   - 기능/저장/Shift+Enter/Realtime 로직 변경 없음
   ───────────────────────────────────────────── */
.memo-input,
.mob-textarea{
  box-sizing:border-box !important;
  border-radius:16px !important;
  padding:13px 17px !important;
  line-height:1.48 !important;
  min-height:56px !important;
  max-height:168px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  resize:none !important;
}
.memo-input{
  min-height:54px !important;
  padding:12px 16px !important;
}
@media (max-width:600px){
  .mob-textarea{
    border-radius:16px !important;
    min-height:54px !important;
    padding:13px 17px !important;
  }
}


/* ─────────────────────────────────────────────
   V303-W3.8 — REAL composer one-line align + visible normal tag
   - 기존 저장/Realtime/DB/이벤트 로직 변경 없음
   - 입력 row와 textarea 표시 CSS만 최종 보정
   - 연회색 중요도 탭은 실제 버튼 내부에 “일반” 텍스트 표시
   ───────────────────────────────────────────── */
.winp .wir.web-input-row-v160,
.winp .wir,
.mob-input-area .mob-input-row{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:8px !important;
}
.winp .wir.web-input-row-v160{
  padding:0 !important;
  min-height:38px !important;
}
.winp .wir.web-input-row-v160 .web-plus-btn-v160,
.winp .wir.web-input-row-v160 .ppb,
.mob-input-row .mob-plus-btn,
.mob-input-row .send-btn,
.mob-input-row .mob-send-btn{
  align-self:center !important;
  flex:0 0 auto !important;
  margin:0 !important;
}
.winp .wir.web-input-row-v160 textarea.memo-input,
.winp textarea.memo-input{
  align-self:center !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  min-height:38px !important;
  max-height:200px !important;
  padding:8px 14px !important;
  line-height:1.42 !important;
  border-radius:5px !important;
  box-sizing:border-box !important;
  resize:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  margin:0 !important;
  display:block !important;
  vertical-align:middle !important;
}
.mob-input-area .mob-input-row textarea.mob-textarea,
.mob-input-row textarea.mob-textarea{
  align-self:center !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  min-height:38px !important;
  max-height:200px !important;
  padding:8px 14px !important;
  line-height:1.42 !important;
  border-radius:5px !important;
  box-sizing:border-box !important;
  resize:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  margin:0 !important;
  display:block !important;
}
.web-draft-tags .mob-draft-tag.nm-normal-tag-v303w8,
.mob-draft-tags .mob-draft-tag.nm-normal-tag-v303w8,
.web-draft-tags .mob-draft-tag[data-normal="1"],
.mob-draft-tags .mob-draft-tag[data-normal="1"]{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:15px !important;
  min-height:15px !important;
  padding:0 6px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#f8fafc !important;
  border:1px solid #d9dee7 !important;
  color:#9aa3af !important;
  font-size:9px !important;
  font-weight:700 !important;
  line-height:1 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.web-draft-tags .mob-draft-tag.nm-normal-tag-v303w8 .nm-normal-tag-text-v303w8,
.mob-draft-tags .mob-draft-tag.nm-normal-tag-v303w8 .nm-normal-tag-text-v303w8{
  display:block !important;
  pointer-events:none !important;
  white-space:nowrap !important;
}
.web-draft-tags .mob-draft-tag.nm-normal-tag-v303w8::before,
.mob-draft-tags .mob-draft-tag.nm-normal-tag-v303w8::before{
  display:none !important;
  content:none !important;
}
@media (max-width:600px){
  .mob-input-area{
    padding-top:6px !important;
    padding-right:0 !important;
    padding-bottom:0 !important;
    padding-left:0 !important;
  }
  .mob-input-area .mob-input-row{
    min-height:38px !important;
  }
}

/* ─────────────────────────────────────────────
   V303-W3.32 — Mobile board chip/dropdown size lock
   목적: 메모장 켜짐/꺼짐 전환 시 크기 흔들림 방지.
   범위: 표시 CSS만. 저장/삭제/업로드/동기화/DB 로직 변경 없음.
   ───────────────────────────────────────────── */
@media (max-width:600px){
  #tb .mob-active-board-chip-v274,
  #tb .chip.mob-active-board-chip-v274,
  #tb .chip.chip-h.mob-active-board-chip-v274{
    box-sizing:border-box !important;
    height:32px !important;
    min-height:32px !important;
    width:212px !important;
    min-width:212px !important;
    max-width:min(212px, calc(100vw - 92px)) !important;
    padding:4px 10px 4px 12px !important;
    border:1px solid rgba(255,255,255,.34) !important;
    outline:0 !important;
    transform:none !important;
    transition:background-color .18s ease, color .18s ease, opacity .18s ease, filter .18s ease, box-shadow .18s ease !important;
  }
  #tb .mob-active-chip-label-v274{
    flex:1 1 auto !important;
    min-width:0 !important;
    font-weight:700 !important;
  }
  #tb .mob-active-count-v303w3{
    box-sizing:border-box !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:20px !important;
    padding:0 5px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.24) !important;
    color:rgba(255,255,255,.96) !important;
    font-size:10px !important;
    font-weight:900 !important;
    line-height:1 !important;
  }
  #tb .mob-active-chip-caret-v274{
    width:14px !important;
    min-width:14px !important;
    text-align:center !important;
  }
  .mob-board-dropdown-v274{
    box-sizing:border-box !important;
  }
  .mob-board-dropdown-item-v274,
  .mob-board-dropdown-item-v274.active{
    box-sizing:border-box !important;
    height:50px !important;
    min-height:50px !important;
    max-height:50px !important;
    padding:10px 12px !important;
    border:0 !important;
    outline:0 !important;
    transform:none !important;
    transition:background-color .16s ease, color .16s ease, opacity .16s ease !important;
  }
  .mob-board-dropdown-dot-v274{
    width:10px !important;
    min-width:10px !important;
    height:10px !important;
  }
  .mob-board-dropdown-name-v274{
    font-weight:700 !important;
    line-height:1 !important;
  }
}

/* ─────────────────────────────────────────────
   V303-W3.35 — Mobile header chip width rollback/fix
   목적: W3.32 size-lock가 앱 상단 메모장칩을 212px로 강제해 중앙 로고를 침범한 문제 복구.
   범위: 모바일 헤더 표시 CSS만. 드롭다운 목록/저장/삭제/업로드/동기화/DB 로직 변경 없음.
   ───────────────────────────────────────────── */
@media (max-width:600px){
  #tb .tb-active-chip-wrap-v274{
    flex:1 1 0 !important;
    min-width:0 !important;
    max-width:126px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    z-index:2 !important;
  }
  #tb .mob-active-board-chip-v274,
  #tb .chip.mob-active-board-chip-v274,
  #tb .chip.chip-h.mob-active-board-chip-v274{
    box-sizing:border-box !important;
    height:24px !important;
    min-height:24px !important;
    width:118px !important;
    min-width:0 !important;
    max-width:118px !important;
    padding:2px 7px 2px 8px !important;
    border-radius:999px !important;
    gap:4px !important;
    align-self:center !important;
    transform:none !important;
    box-shadow:0 4px 11px rgba(15,23,42,.10) !important;
    transition:background-color .18s ease, color .18s ease, opacity .18s ease, filter .18s ease, box-shadow .18s ease !important;
  }
  #tb .mob-active-chip-label-v274{
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:-.02em !important;
  }
  #tb .mob-active-count-v303w3{
    display:none !important;
  }
  #tb .mob-active-chip-caret-v274{
    font-size:11px !important;
    line-height:1 !important;
    flex:0 0 auto !important;
  }
}

/* ─────────────────────────────────────────────
   V303-W3.54.1 — Plan entry button layout hard fix
   목적: 모바일 공통 .tb-settings-menu button{width:100%} 규칙이 FREE/플랜 관리 버튼까지
   적용되어 계정 헤더와 저장공간 카드 레이아웃이 깨지는 문제 보정.
   범위: 우측 상단 메뉴 표시 CSS만. Billing/DB/권한/저장공간 제한/저장/동기화 로직 미수정.
   ───────────────────────────────────────────── */
.tb-settings-menu .nm-account-mini-v303w310{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
}
.tb-settings-menu .nm-account-mini-main-v303w310{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
}
.tb-settings-menu button.nm-account-mini-plan-btn-v354,
.tb-settings-menu .nm-account-mini-plan-btn-v354{
  width:auto !important;
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  min-width:46px !important;
  max-width:max-content !important;
  height:26px !important;
  padding:0 11px !important;
  margin:2px 0 0 0 !important;
  border-radius:999px !important;
  border:1px solid rgba(249,115,22,.14) !important;
  background:linear-gradient(180deg, rgba(255,244,235,.98) 0%, rgba(255,234,218,.98) 100%) !important;
  color:#EA580C !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.015em !important;
  text-align:center !important;
  text-transform:uppercase !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88) !important;
}
.tb-settings-menu .nm-storage-plan-row-v354{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin-top:9px !important;
  width:100% !important;
}
.tb-settings-menu .nm-storage-plan-row-v354 .nm-storage-plan-v278{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin-top:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.tb-settings-menu button.nm-storage-plan-manage-v354,
.tb-settings-menu .nm-storage-plan-manage-v354{
  width:auto !important;
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  min-width:auto !important;
  max-width:max-content !important;
  height:26px !important;
  padding:0 11px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(249,115,22,.09) !important;
  color:#EA580C !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.02em !important;
  text-align:center !important;
  white-space:nowrap !important;
}


/* V303-W3.86 — 단일 메모장칩 탭다운 드래그 순서 변경 표시 */
.mob-board-dropdown-item-v274.dropdown-dragging-v386,
.web-board-dropdown-item-v303w1.dropdown-dragging-v386{
  opacity:.72;
  transform:scale(.985);
  box-shadow:0 10px 24px rgba(15,23,42,.16);
  touch-action:none;
}
.mob-board-dropdown-v274 .mob-board-dropdown-item-v274,
.web-board-dropdown-v303w1 .web-board-dropdown-item-v303w1{
  cursor:grab;
}
.mob-board-dropdown-v274 .mob-board-dropdown-item-v274:active,
.web-board-dropdown-v303w1 .web-board-dropdown-item-v303w1:active{
  cursor:grabbing;
}


/* W3.86.1 — Android 앱 탭다운 메모장 순서 변경 터치 보강 */
.mob-board-dropdown-v274.mobile-reorder-v3861{
  overscroll-behavior:contain;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}
.mob-board-dropdown-v274.mobile-reorder-v3861 .mob-board-dropdown-item-v274{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  touch-action:pan-y;
}
.mob-board-dropdown-v274.mobile-reorder-v3861.reordering-v3861{
  touch-action:none;
  overflow-y:hidden;
}
.mob-board-dropdown-v274.mobile-reorder-v3861.reordering-v3861 .mob-board-dropdown-item-v274{
  touch-action:none;
}
.mob-board-dropdown-v274.mobile-reorder-v3861 .mob-board-dropdown-item-v274.dropdown-dragging-v386{
  opacity:.78 !important;
  transform:scale(.985) !important;
  box-shadow:0 12px 28px rgba(15,23,42,.18) !important;
  position:relative;
  z-index:2;
}


/* V303-W3.90.18 Mobile mirror memo board calm frame design
   CSS-only: 메모 저장/삭제/동기화/Auth/Billing/Storage/SQL 변경 없음.
   목표: 샘플 방향 유지하되 쨍한 원색을 줄이고, 메모 하나하나를 회색 테두리 카드로 정리. */
:root{
  --nm-w39018-card-border:#e5e7eb;
  --nm-w39018-inner-border:#d6d9df;
  --nm-w39018-text:#252a33;
  --nm-w39018-muted:#8b94a3;
}
.win[style*="--board-color"],
.mobbrd[style*="--board-color"]{
  /* 원색을 그대로 쓰지 않고, 회색/와인 톤을 섞어 차분하게 만든 메모장 프레임 */
  --nm-w39018-frame:color-mix(in srgb, var(--board-color, #9f3f46) 62%, #334155 38%);
  --nm-w39018-frame-dark:color-mix(in srgb, var(--board-color, #8f333b) 54%, #1f2937 46%);
  --nm-w39018-frame-soft:color-mix(in srgb, var(--board-color, #9f3f46) 8%, #fff 92%);
  --nm-w39018-frame-line:color-mix(in srgb, var(--board-color, #9f3f46) 20%, #cbd5e1 80%);
}

/* Web memo board frame */
body:not(.mobile-mode) .win[style*="--board-color"]{
  background:#fff !important;
  border:1px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
  border-radius:11px !important;
  box-shadow:0 10px 28px rgba(15,23,42,.12), 0 1px 2px rgba(15,23,42,.08) !important;
  overflow:hidden !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wi{
  background:transparent !important;
  border-radius:11px !important;
  overflow:hidden !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh{
  height:38px !important;
  min-height:38px !important;
  padding:0 12px 0 16px !important;
  background:linear-gradient(180deg, color-mix(in srgb, var(--nm-w39018-frame) 92%, #fff 8%), var(--nm-w39018-frame-dark)) !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.20) !important;
  color:#fff !important;
  box-shadow:none !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh::before{display:none !important;content:none !important;}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .whead,
body:not(.mobile-mode) .win[style*="--board-color"] .wh i,
body:not(.mobile-mode) .win[style*="--board-color"] .wh svg{
  color:#fff !important;
  fill:currentColor !important;
  stroke:currentColor !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle{
  font-weight:850 !important;
  font-size:13px !important;
  letter-spacing:-.03em !important;
  text-align:center !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wb2,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .ib,
body:not(.mobile-mode) .win[style*="--board-color"] .wh button{
  width:28px !important;height:28px !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  border-radius:999px !important;
  box-shadow:none !important;
  opacity:.96 !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wb2:hover,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .ib:hover,
body:not(.mobile-mode) .win[style*="--board-color"] .wh button:hover{
  background:rgba(255,255,255,.14) !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wb{
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  border:0 !important;
  border-bottom:0 !important;
  border-radius:0 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65) !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .winp{
  margin:0 !important;
  padding:0 0 10px 0 !important;
  background:#fff !important;
  border:0 !important;
  border-top:1px solid color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.10)) !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* Memo item: each memo has its own quiet gray border */
.row{
  background:#fff !important;
  border:1px solid var(--nm-w39018-card-border) !important;
  border-radius:12px !important;
  margin:0 0 10px !important;
  box-shadow:0 1px 2px rgba(15,23,42,.035) !important;
  overflow:hidden !important;
}
.row:hover{
  border-color:#d1d5db !important;
  box-shadow:0 5px 14px rgba(15,23,42,.065) !important;
}
.row .rm{
  padding:13px 12px 12px 0px !important;
  align-items:flex-start !important;
}
.row .rb{padding:0 8px 0 8px !important;}
.row .rt,
.row .thread-text{
  color:var(--nm-w39018-text) !important;
  font-weight:650 !important;
  line-height:1.58 !important;
}
.row .rsub{color:var(--nm-w39018-muted) !important;}
.row-tag-btn{
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  border-radius:50% !important;
  margin:20px 0 0 12px !important;
  align-self:flex-start !important;
  flex-shrink:0 !important;
  opacity:.88 !important;
}
.row-tag-btn:hover{width:12px !important;height:12px !important;min-width:12px !important;opacity:1 !important;}
html.capacitor .row-tag-btn{
  margin:22px 0 0 12px !important;
}
.row .ra{padding-top:2px !important;}
.row .rbt{color:#9ca3af !important;background:transparent !important;border-radius:8px !important;}
.row .rbt:hover{background:#f3f4f6 !important;color:#374151 !important;}
.row .rbt.dl:hover{color:#ef4444 !important;background:#fef2f2 !important;}

/* Bottom input: sample처럼 깔끔한 흰색 입력 바 */
.memo-input,
.mob-textarea{
  background:#fff !important;
  border:1px solid #d9dde5 !important;
  border-radius:5px !important;
  min-height:36px !important;
  padding:8px 13px !important;
  color:#1f2937 !important;
  box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
}
.memo-input:focus,
.mob-textarea:focus{
  border-color:color-mix(in srgb, var(--nm-w39018-frame, var(--board-color, #9f3f46)) 45%, #d1d5db 55%) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--nm-w39018-frame, var(--board-color, #9f3f46)) 12%, transparent) !important;
}
.ppb,
.mob-plus-btn{
  width:30px !important;height:30px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--nm-w39018-frame, var(--board-color, #9f3f46)) !important;
  border:1.5px solid currentColor !important;
  box-shadow:none !important;
}
.ppb i,.mob-plus-btn i{color:currentColor !important;stroke:currentColor !important;}
.send-btn,
.mob-send-btn{
  width:32px !important;height:32px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--nm-w39018-frame, var(--board-color, #9f3f46)) !important;
  border:0 !important;
  box-shadow:none !important;
}
.send-btn i,.mob-send-btn i{color:currentColor !important;stroke:currentColor !important;}
.ppb:hover,.mob-plus-btn:hover,.send-btn:hover,.mob-send-btn:hover{
  background:color-mix(in srgb, var(--nm-w39018-frame, var(--board-color, #9f3f46)) 8%, #fff 92%) !important;
}

/* Mobile frame/header/body */
@media (max-width:700px){
  .mobbrd[style*="--board-color"]{
    background:#fff !important;
    border:1px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
    border-radius:11px !important;
    overflow:hidden !important;
    box-shadow:0 8px 22px rgba(15,23,42,.10) !important;
  }
  .mob-unified-hdr[style*="--board-color"],
  .mobbrd[style*="--board-color"] .mob-unified-hdr{
    height:40px !important;
    min-height:40px !important;
    padding:0 10px !important;
    background:linear-gradient(180deg, color-mix(in srgb, var(--nm-w39018-frame) 92%, #fff 8%), var(--nm-w39018-frame-dark)) !important;
    border:0 !important;
    border-top-left-radius:11px !important;
    border-top-right-radius:11px !important;
    border-bottom:1px solid rgba(255,255,255,.20) !important;
    color:#fff !important;
    box-shadow:none !important;
  }
  .mob-unified-hdr::before{display:none !important;content:none !important;}
  .mob-unified-hdr .mob-board-name{
    color:#fff !important;
    font-weight:850 !important;
    font-size:13px !important;
    letter-spacing:-.03em !important;
    text-align:center !important;
  }
  .mob-unified-hdr .mob-board-name i,
  .mob-unified-hdr .mob-board-name .ti,
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn),
  .mob-unified-hdr .mob-nav-btn > i,
  .mob-unified-hdr .wb2 > i,
  .mob-unified-hdr .ib > i,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i{
    color:#fff !important;
    stroke:currentColor !important;
    fill:currentColor !important;
  }
  .mob-unified-hdr .mob-nav-btn,
  .mob-unified-hdr .wb2,
  .mob-unified-hdr .ib,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn){
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    border-radius:999px !important;
    opacity:.96 !important;
  }
  .mob-unified-hdr .mob-nav-btn:hover,
  .mob-unified-hdr .wb2:hover,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):hover,
  .mob-unified-hdr .mob-nav-btn:active,
  .mob-unified-hdr .wb2:active,
  .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):active{
    background:rgba(255,255,255,.14) !important;
  }
  .mobbrd[style*="--board-color"] .mobbdy{
    margin:0 !important;
    padding:0 0 12px 8px !important;
    background:#fff !important;
    border:0 !important;
    border-bottom:0 !important;
    border-radius:0 !important;
  }
  .mobbrd[style*="--board-color"] .mob-input-area{
    margin:0 !important;
    padding:0 0 10px 0 !important;
    background:#fff !important;
    border:0 !important;
    border-top:1px solid color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.10)) !important;
    border-bottom-left-radius:11px !important;
    border-bottom-right-radius:11px !important;
    box-shadow:none !important;
  }
  .mob-input-area .mob-input-row{
    gap:9px !important;
    align-items:center !important;
  }
  .mob-input-area .mob-input-row textarea.mob-textarea,
  .mob-input-row textarea.mob-textarea{
    min-height:36px !important;
    max-height:200px !important;
    border-radius:5px !important;
    padding:8px 14px !important;
  }
  .mobbdy .row{
    margin-bottom:12px !important;
    border:1px solid var(--nm-w39018-card-border) !important;
    border-radius:12px !important;
    background:#fff !important;
  }
}


/* V303-W3.90.19 Memo board finishing fixes
   CSS-only: menu icon visibility, scrollbar inset, board chip polish, title contrast,
   input placeholder alignment, plus-button square background removal. */
.win[style*="--board-color"],
.mobbrd[style*="--board-color"]{
  --nm-w39019-frame:color-mix(in srgb, var(--board-color, #9f3f46) 58%, #374151 42%);
  --nm-w39019-frame-dark:color-mix(in srgb, var(--board-color, #8f333b) 48%, #1f2937 52%);
  --nm-w39019-frame-soft:color-mix(in srgb, var(--board-color, #9f3f46) 14%, #ffffff 86%);
  --nm-w39019-gray-border:#d9dee7;
  --nm-w39019-card-border:#e1e5ec;
}

/* 1) Board menu: never inherit white icon color from colored header */
.win[style*="--board-color"] .bmenu,
.mobbrd[style*="--board-color"] .bmenu{
  background:#fff !important;
  color:#243041 !important;
  border:1px solid #e5e7eb !important;
  border-radius:15px !important;
  box-shadow:0 12px 32px rgba(15,23,42,.16) !important;
  overflow:hidden !important;
}
.win[style*="--board-color"] .bmenu .msl,
.mobbrd[style*="--board-color"] .bmenu .msl{
  color:#4b5563 !important;
  background:#fff !important;
}
.win[style*="--board-color"] .bmenu .mi,
.mobbrd[style*="--board-color"] .bmenu .mi{
  color:#263241 !important;
  background:#fff !important;
}
.win[style*="--board-color"] .bmenu .mi i,
.mobbrd[style*="--board-color"] .bmenu .mi i{
  color:#6b7280 !important;
  stroke:currentColor !important;
  fill:none !important;
}
.win[style*="--board-color"] .bmenu .mi:hover,
.mobbrd[style*="--board-color"] .bmenu .mi:hover{
  background:#f8fafc !important;
}
.win[style*="--board-color"] .bmenu .mi.dng,
.mobbrd[style*="--board-color"] .bmenu .mi.dng,
.win[style*="--board-color"] .bmenu .mi.dng i,
.mobbrd[style*="--board-color"] .bmenu .mi.dng i{
  color:#dc2626 !important;
}
.win[style*="--board-color"] .bmenu .mdv,
.mobbrd[style*="--board-color"] .bmenu .mdv{
  background:#e5e7eb !important;
}

/* 2) Scrollbar top inset: keep scrollbar inside rounded white memo area */
.win[style*="--board-color"] .wb,
.mobbrd[style*="--board-color"] .mobbdy{
  scrollbar-gutter:stable !important;
  overflow:auto !important;
}
.win[style*="--board-color"] .wb::-webkit-scrollbar,
.mobbrd[style*="--board-color"] .mobbdy::-webkit-scrollbar{
  width:8px !important;
}
.win[style*="--board-color"] .wb::-webkit-scrollbar-track,
.mobbrd[style*="--board-color"] .mobbdy::-webkit-scrollbar-track{
  background:transparent !important;
  margin-top:14px !important;
  margin-bottom:14px !important;
}
.win[style*="--board-color"] .wb::-webkit-scrollbar-thumb,
.mobbrd[style*="--board-color"] .mobbdy::-webkit-scrollbar-thumb{
  background:#9ca3af !important;
  border-radius:999px !important;
  border:2px solid #fff !important;
}

/* 3) Active board chip: app/web current design-compatible calm pill */
#tb .web-active-board-chip-v303w1,
#tb .chip.web-active-board-chip-v303w1,
#tb .chip.chip-h.web-active-board-chip-v303w1,
#tb .mob-active-board-chip-v274,
#tb .chip.mob-active-board-chip-v274,
#tb .chip.chip-h.mob-active-board-chip-v274{
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--board-color, #9f3f46) 64%, #fff 36%),
    color-mix(in srgb, var(--board-color, #9f3f46) 54%, #111827 46%)) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:999px !important;
  box-shadow:none !important;
  height:28px !important;
  min-height:28px !important;
  padding:0 10px !important;
}
#tb .web-active-board-chip-v303w1 .chip-name,
#tb .web-active-board-chip-v303w1 .web-active-count-v303w1,
#tb .web-active-board-chip-v303w1 i,
#tb .mob-active-board-chip-v274 .mob-active-chip-label-v274,
#tb .mob-active-board-chip-v274 i{
  color:#fff !important;
  text-shadow:0 1px 1px rgba(0,0,0,.18) !important;
  opacity:1 !important;
}
#tb .web-active-board-chip-v303w1 .chip-name,
#tb .mob-active-board-chip-v274 .mob-active-chip-label-v274{
  font-weight:800 !important;
  letter-spacing:-.03em !important;
}
#tb .web-active-board-chip-v303w1 .web-active-count-v303w1{
  background:rgba(255,255,255,.20) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  border-radius:999px !important;
  padding:1px 6px !important;
}
#tb .web-active-board-chip-v303w1 .chip-open-dot{
  background:#fff !important;
  opacity:.88 !important;
}
#tb .web-active-board-chip-v303w1:hover,
#tb .mob-active-board-chip-v274:hover{
  filter:saturate(.96) brightness(.98) !important;
}

/* 4) Web board header title/icons contrast and enterprise-like finish */
body:not(.mobile-mode) .win[style*="--board-color"] .wh{
  background:linear-gradient(180deg, color-mix(in srgb, var(--nm-w39019-frame) 95%, #fff 5%), var(--nm-w39019-frame-dark)) !important;
  border-bottom:1px solid rgba(255,255,255,.20) !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .whead,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wb2,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .ib,
body:not(.mobile-mode) .win[style*="--board-color"] .wh button,
body:not(.mobile-mode) .win[style*="--board-color"] .wh i,
body:not(.mobile-mode) .win[style*="--board-color"] .wh svg{
  color:#fff !important;
  stroke:currentColor !important;
  fill:none !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle{
  text-shadow:0 1px 1px rgba(0,0,0,.18) !important;
}

/* Card borders: memo 하나하나 회색 테두리 유지 */
.win[style*="--board-color"] .row,
.mobbrd[style*="--board-color"] .row{
  border:1px solid var(--nm-w39019-card-border) !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 1px 2px rgba(15,23,42,.035) !important;
}

/* 5) Input placeholder vertical centering */
.winp .wir.web-input-row-v160,
.mob-input-area .mob-input-row{
  align-items:center !important;
}
.winp .wir.web-input-row-v160 textarea.memo-input,
.winp textarea.memo-input,
.mob-input-area textarea.mob-textarea,
.mob-input-row textarea.mob-textarea{
  min-height:38px !important;
  max-height:200px !important;
  line-height:1.42 !important;
  padding:8px 14px !important;
  display:block !important;
  align-self:center !important;
  border-radius:5px !important;
  box-sizing:border-box !important;
  overflow-y:auto !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
}
.memo-input::placeholder,
.mob-textarea::placeholder{
  color:#8b94a3 !important;
  line-height:20px !important;
}

/* 6) Remove faint square background around plus button */
.win[style*="--board-color"] .web-plus-btn-v160,
.win[style*="--board-color"] .ppb,
.mobbrd[style*="--board-color"] .mob-plus-btn,
.mob-input-area .mob-plus-btn,
.web-plus-btn-v160{
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  width:34px !important;
  min-width:34px !important;
  height:34px !important;
  border-radius:999px !important;
  color:var(--nm-w39019-frame, var(--board-color, #9f3f46)) !important;
}
.win[style*="--board-color"] .web-plus-btn-v160 i,
.win[style*="--board-color"] .ppb i,
.mobbrd[style*="--board-color"] .mob-plus-btn i,
.web-plus-btn-v160 i{
  color:currentColor !important;
  stroke:currentColor !important;
}
.win[style*="--board-color"] .web-plus-btn-v160:hover,
.win[style*="--board-color"] .ppb:hover,
.mobbrd[style*="--board-color"] .mob-plus-btn:hover{
  background:rgba(255,255,255,.55) !important;
}

/* V303-W3.90.21 — App/WebView memo composer final alignment fix
   CSS-only: remove textarea inner scroll, center placeholder/text vertically, clean horizontal layout. */
.mob-input-area{
  overflow:visible !important;
}
.mob-input-area .mob-input-row,
.mob-input-row{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:46px !important;
}
.mob-input-area .mob-input-row textarea.mob-textarea,
.mob-input-row textarea.mob-textarea,
textarea.mob-textarea{
  min-height:38px !important;
  max-height:200px !important;
  line-height:1.42 !important;
  padding:9px 16px !important;
  margin:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  resize:none !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  display:block !important;
  align-self:center !important;
  vertical-align:middle !important;
  border-radius:5px !important;
  box-sizing:border-box !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  overflow-wrap:break-word !important;
}
.mob-input-area .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
.mob-input-row textarea.mob-textarea::-webkit-scrollbar,
textarea.mob-textarea::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}
.mob-textarea::placeholder{
  color:#8b94a3 !important;
  line-height:20px !important;
  opacity:1 !important;
}
.mob-input-row .mob-plus-btn,
.mob-input-row .send-btn,
.mob-input-row .mob-send-btn,
.mob-input-area .mob-plus-btn,
.mob-input-area .send-btn,
.mob-input-area .mob-send-btn{
  align-self:center !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  flex-shrink:0 !important;
}


/* ═══════════════════════════════════════════════════════
   V303-W3.90.22 — App/Web header title + composer hard fix
   CSS-only. No JS/SQL/Auth/Billing/Storage/save/delete/sync changes.
   - Mobile/App board title forced white and 1px smaller
   - Header icons forced white after older mobile overrides
   - Memo input textarea fixed one-line composer, no inner scrollbar
   - Plus button square background removed
   ═══════════════════════════════════════════════════════ */

/* App/Web board title: final hard override */
.mob-unified-hdr .mob-board-name,
.mob-unified-hdr[style*="--board-color"] .mob-board-name,
.mobbrd[style*="--board-color"] .mob-unified-hdr .mob-board-name,
body.mobile-mode .mob-unified-hdr .mob-board-name,
body.mobile-mode .mob-unified-hdr[style*="--board-color"] .mob-board-name,
body.mobile-mode .mobbrd[style*="--board-color"] .mob-unified-hdr .mob-board-name,
html.capacitor .mob-unified-hdr .mob-board-name,
html.capacitor .mob-unified-hdr[style*="--board-color"] .mob-board-name,
html.capacitor .mobbrd[style*="--board-color"] .mob-unified-hdr .mob-board-name,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .whead{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.16) !important;
}

/* App title font 1px smaller than the prior 10.6px mobile rule */
.mob-unified-hdr .mob-board-name,
.mob-unified-hdr[style*="--board-color"] .mob-board-name,
.mobbrd[style*="--board-color"] .mob-unified-hdr .mob-board-name,
body.mobile-mode .mob-unified-hdr .mob-board-name,
html.capacitor .mob-unified-hdr .mob-board-name{
  font-size:9.6px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:-.035em !important;
}

/* Web title: 1px down while keeping readability */
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wtitle,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .whead{
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
}

/* Header icons must stay white on colored header */
.mob-unified-hdr .mob-nav-btn,
.mob-unified-hdr .wb2,
.mob-unified-hdr .ib,
.mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn),
.mob-unified-hdr .mob-nav-btn > i,
.mob-unified-hdr .wb2 > i,
.mob-unified-hdr .ib > i,
.mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i,
.mob-unified-hdr .mob-nav-btn > i::before,
.mob-unified-hdr .wb2 > i::before,
.mob-unified-hdr .ib > i::before,
.mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i::before,
body:not(.mobile-mode) .win[style*="--board-color"] .wh button,
body:not(.mobile-mode) .win[style*="--board-color"] .wh button i,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wb2,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .wb2 i,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .ib,
body:not(.mobile-mode) .win[style*="--board-color"] .wh .ib i{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  stroke:currentColor !important;
  fill:currentColor !important;
  opacity:1 !important;
}

/* Composer row: keep all controls horizontally centered */
.winp,
.mob-input-area{
  overflow:visible !important;
}
.winp .wir,
.winp .wir.web-input-row-v160,
.mob-input-area .mob-input-row,
.mob-input-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-height:46px !important;
  overflow:visible !important;
}

/* Textarea: single-line visual, no inner scrollbar, placeholder/text centered */
.winp textarea.memo-input,
.winp .wir textarea.memo-input,
.winp .wir.web-input-row-v160 textarea.memo-input,
textarea.memo-input,
.mob-input-area textarea.mob-textarea,
.mob-input-area .mob-input-row textarea.mob-textarea,
.mob-input-row textarea.mob-textarea,
textarea.mob-textarea{
  flex:1 1 auto !important;
  min-height:38px !important;
  max-height:200px !important;
  line-height:1.42 !important;
  padding:9px 16px !important;
  margin:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  resize:none !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  display:block !important;
  align-self:center !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
  border-radius:5px !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  overflow-wrap:break-word !important;
}
.winp textarea.memo-input::-webkit-scrollbar,
.winp .wir textarea.memo-input::-webkit-scrollbar,
.winp .wir.web-input-row-v160 textarea.memo-input::-webkit-scrollbar,
textarea.memo-input::-webkit-scrollbar,
.mob-input-area textarea.mob-textarea::-webkit-scrollbar,
.mob-input-area .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
.mob-input-row textarea.mob-textarea::-webkit-scrollbar,
textarea.mob-textarea::-webkit-scrollbar{
  display:none !important;
  width:0 !important;
  height:0 !important;
}
.memo-input::placeholder,
.mob-textarea::placeholder{
  color:#8b94a3 !important;
  opacity:1 !important;
  line-height:18px !important;
}

/* Plus/send: no faint square behind plus, centered symbols only */
.winp .web-plus-btn-v160,
.winp .ppb,
.winp .send-btn,
.mob-input-row .mob-plus-btn,
.mob-input-row .send-btn,
.mob-input-row .mob-send-btn,
.mob-input-area .mob-plus-btn,
.mob-input-area .send-btn,
.mob-input-area .mob-send-btn{
  align-self:center !important;
  margin:0 !important;
  flex-shrink:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* ═══════════════════════════════════════════════════════
   V303-W3.90.23 — Android app composer vertical alignment micro-fix
   CSS-only. App/WebView focused. No JS/SQL/Auth/Billing/Storage/save/delete/sync changes.
   - App memo input pill border aligned to the plus/send button center line
   - Keep inner scrollbar removed
   ═══════════════════════════════════════════════════════ */
html.capacitor .mob-input-area,
body.mobile-mode .mob-input-area{
  overflow:visible !important;
}
html.capacitor .mob-input-area .mob-input-row,
html.capacitor .mob-input-row,
body.mobile-mode .mob-input-area .mob-input-row,
body.mobile-mode .mob-input-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:48px !important;
  gap:10px !important;
  overflow:visible !important;
}
/* V303-W3.91.172: 실제 앱(Capacitor)에서 입력창 자동확장이 전혀 반영되지 않던 진짜 원인.
   styles/main.css는 index.html에서 mobile.css보다 먼저 로드되기 때문에, 여기 있는
   html.capacitor/body.mobile-mode 전용 규칙(specificity가 더 높음)이 항상 이겨서
   main.css 쪽 수정이 화면에 전혀 반영되지 않고 있었다. 고정 height와 white-space:nowrap,
   border-radius:999px를 걷어내고 main.css와 동일한 방식(JS의 autoResizeInput이 실제로
   높이를 늘리도록 min/max만 가드, 좌우로 계속 뻗지 않고 폭에 맞춰 줄바꿈)으로 맞췄다. */
html.capacitor .mob-input-area .mob-input-row textarea.mob-textarea,
html.capacitor .mob-input-row textarea.mob-textarea,
body.mobile-mode .mob-input-area .mob-input-row textarea.mob-textarea,
body.mobile-mode .mob-input-row textarea.mob-textarea,
html.capacitor textarea.mob-textarea,
body.mobile-mode textarea.mob-textarea{
  min-height:36px !important;
  max-height:200px !important;
  line-height:1.42 !important;
  padding:8px 16px !important;
  margin:0 !important;
  transform:translateY(1px) !important;
  align-self:center !important;
  display:block !important;
  box-sizing:border-box !important;
  border-radius:5px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  resize:none !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  overflow-wrap:break-word !important;
  vertical-align:middle !important;
}
html.capacitor .mob-input-area .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
html.capacitor .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
body.mobile-mode .mob-input-area .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
body.mobile-mode .mob-input-row textarea.mob-textarea::-webkit-scrollbar,
html.capacitor textarea.mob-textarea::-webkit-scrollbar,
body.mobile-mode textarea.mob-textarea::-webkit-scrollbar{
  display:none !important;
  width:0 !important;
  height:0 !important;
}
html.capacitor .mob-textarea::placeholder,
body.mobile-mode .mob-textarea::placeholder{
  line-height:18px !important;
  color:#8b94a3 !important;
  opacity:1 !important;
}
html.capacitor .mob-input-row .mob-plus-btn,
html.capacitor .mob-input-row .send-btn,
html.capacitor .mob-input-row .mob-send-btn,
body.mobile-mode .mob-input-row .mob-plus-btn,
body.mobile-mode .mob-input-row .send-btn,
body.mobile-mode .mob-input-row .mob-send-btn{
  align-self:center !important;
  margin:0 !important;
  transform:none !important;
}

/* ═══════════════════════════════════════════════════════
   V303-W3.90.34 — Android bottom ad placeholder TALLER
   CSS-only. Based on W3.90.31.
   - Keep the top position almost the same as W3.90.31
   - Expand the ad box downward toward the Android navigation bar
   - Preserve memo/input logic; no JS/Auth/Billing/Storage changes
   ═══════════════════════════════════════════════════════ */
@media (max-width:600px){
  html.capacitor #ad-bar,
  body.capacitor #ad-bar{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    /* W3.90.31 top was about: nav-safe + 6px + 42px = 100px.
       New: 82px high with bottom around nav-safe - 24px, so the top stays near 110px
       and the lower edge clearly extends toward/into the system navigation area. */
    bottom:calc(var(--nm-apk-nav-safe, max(52px, env(safe-area-inset-bottom))) - 24px) !important;
    height: 68px !important;
    min-height: 68px !important;
    max-height: 68px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
    z-index:45 !important;
    pointer-events:none !important;
    color:#9aa3af !important;
    font-size:12px !important;
    font-weight:600 !important;
    letter-spacing:.04em !important;
  }
  html.capacitor #ad-bar span,
  body.capacitor #ad-bar span{
    display:block !important;
    color:#9aa3af !important;
    font-size:12px !important;
    font-weight:600 !important;
    line-height:1 !important;
  }
}

/* ═══════════════════════════════════════════════════════
   V303-W3.90.39-FRAME-SLIM — Header / side frame thickness trim
   CSS-only. App + Web applied.
   - Reduce colored board header height slightly
   - Reduce colored side/top frame margin around memo area slightly
   - No JS/Auth/Billing/Storage/save/delete/upload/sync changes
   ═══════════════════════════════════════════════════════ */

/* Web / desktop board: thinner top header and side frame */
body:not(.mobile-mode) .win[style*="--board-color"] .wh{
  height:34px !important;
  min-height:34px !important;
  padding:0 10px 0 14px !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wb{
  margin:0 !important;
  padding:0 0 10px 8px !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .winp{
  margin:0 !important;
  padding:7px 0 7px 8px !important;
}

/* App / mobile board: thinner top header and side frame */
@media (max-width:700px){
  .mob-unified-hdr[style*="--board-color"],
  .mobbrd[style*="--board-color"] .mob-unified-hdr{
    height:36px !important;
    min-height:36px !important;
    padding:0 8px !important;
  }
  .mobbrd[style*="--board-color"] .mobbdy{
    margin:0 !important;
    padding:0 0 10px 8px !important;
  }
  .mobbrd[style*="--board-color"] .mob-input-area{
    margin:0 !important;
    padding:6px 0 3px 0 !important;
  }
}


/* ─────────────────────────────────────────────
   V303-W3.90.39.2 — Header / frame horizontal seam remove
   목적: 상단 헤더(#tb)와 메모장 상단 프레임 사이에 남는 1px 수평 경계선 제거
   범위: CSS only. 저장/삭제/업로드/동기화/Auth/Billing/Storage 로직 변경 없음.
   ───────────────────────────────────────────── */
#tb.tb{
  border-bottom:0 !important;
  box-shadow:none !important;
}
@media (max-width:700px){
  #tb.tb{
    border-bottom:0 !important;
    box-shadow:none !important;
  }
  .mob-unified-hdr[style*="--board-color"],
  .mobbrd[style*="--board-color"] .mob-unified-hdr{
    border-bottom:0 !important;
    box-shadow:none !important;
  }
  .mobbrd[style*="--board-color"] .mobbdy{
    border-top:0 !important;
  }
}
@media (min-width:601px){
  body:not(.mobile-mode) .win[style*="--board-color"] .wh{
    border-bottom:0 !important;
    box-shadow:none !important;
  }
  body:not(.mobile-mode) .win[style*="--board-color"] .wb{
    border-top:0 !important;
  }
}

/* W3.90.39 Memo Margin Light Gray — mobile CSS only */
@media (max-width: 600px){
  #app .mobbdy{
    background:#f5f6f7 !important;
  }
}


/* v303-w3.90.49: 추가메모 크기/두께 연동 + 보드메뉴 아이콘 가시성 + 앱 글꼴 미리보기 */
.rt, .rt *, .ea, .rsub, .rsub *, .thread-text, .thread-text *, .mobi, .mob-textarea, .memo-input {
  font-family: var(--memo-family) !important;
  font-weight: var(--memo-weight) !important;
  font-style: var(--memo-style) !important;
}
.thread-entry, .thread-entry * { font-family: var(--memo-family) !important; }
.thread-text, .rsub { font-size: calc(var(--memo-size) - 1.5px) !important; color:#4b5563 !important; }
.mi { color: var(--txt); }
.mi .mi-ico { width:16px; min-width:16px; display:inline-flex; align-items:center; justify-content:center; color:currentColor; opacity:.78; font-size:13px; line-height:1; }
.mi.dng .mi-ico { color:currentColor; opacity:1; }
.mi i { color:currentColor !important; opacity:.78; }
.fp-font-trigger { width:100%; min-height:40px; padding:8px 10px; border:1px solid var(--bdr2); border-radius:8px; background:var(--bg); color:var(--txt); display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; cursor:pointer; font-family:var(--memo-family); }
.fp-font-trigger:focus { outline:none; border-color:#F97316; }
.fp-font-list { display:none; margin-top:6px; max-height:310px; overflow:auto; border:1px solid var(--bdr2); border-radius:10px; background:var(--bg); box-shadow:0 10px 24px rgba(0,0,0,.12); }
.fp-font-list.open { display:block; }
.fp-font-option { width:100%; border:0; border-bottom:1px solid var(--bdr); background:var(--bg); color:var(--txt); padding:10px 12px; text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:3px; font-size:15px; line-height:1.25; }
.fp-font-option:last-child { border-bottom:0; }
.fp-font-option span { font-size:11px; opacity:.68; font-family:inherit; }
.fp-font-option.fp-active { background:rgba(249,115,22,.10); color:#F97316; font-weight:800; }
.fp-font-option[data-family="default"]{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.fp-font-option[data-family="pretendard"]{font-family:'Pretendard','Apple SD Gothic Neo','Malgun Gothic','Segoe UI',sans-serif;}
.fp-font-option[data-family="suit"]{font-family:'SUIT','Apple SD Gothic Neo','Malgun Gothic','Segoe UI',sans-serif;}
.fp-font-option[data-family="jua"]{font-family:'Jua','Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.fp-font-option[data-family="dongle"]{font-family:'Dongle','Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:23px;}
.fp-font-option[data-family="gaegu"]{font-family:'Gaegu','Nanum Pen Script','Apple SD Gothic Neo','Malgun Gothic',cursive;font-size:18px;}
.fp-font-option[data-family="bagel"]{font-family:'Bagel Fat One','Jua','Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:16px;}
.fp-font-option[data-family="single"]{font-family:'Single Day','Gaegu','Apple SD Gothic Neo','Malgun Gothic',cursive;font-size:18px;}
.fp-font-option[data-family="myeongjo"]{font-family:'Noto Serif KR','MaruBuri','KoPub Batang','Nanum Myeongjo','Apple Myungjo',serif;}
.fp-font-option[data-family="mono"]{font-family:'D2Coding','SF Mono',Consolas,'Courier New',monospace;}

/* v303-w3.90.51: 추가메모/메모판 메뉴 디자인 최종 보정
   - 추가메모는 본메모보다 확실히 작게 고정
   - 추가메모 색상은 본메모와 구분되는 중간 회색
   - 추가메모 표식은 간결한 꺾은 화살표로 통일
   - 메모판 메뉴 아이콘은 고급스러운 slate 계열 아이콘으로 통일 */
:root{
  --nm-thread-size: max(11px, calc(var(--memo-size) - 2px));
  --nm-thread-color: #6B7280;
  --nm-thread-arrow: #FF5A3D;
  --nm-menu-icon: #64748B;
  --nm-menu-icon-soft: #475569;
  --nm-menu-danger: #EF4444;
}
.row .rt,
.row .rt *,
.rt,
.rt *{
  font-size: var(--memo-size) !important;
  font-family: var(--memo-family) !important;
  font-weight: var(--memo-weight) !important;
  font-style: var(--memo-style) !important;
  line-height: 1.58 !important;
}
.row .thread-list{
  margin: 6px 0 1px !important;
  gap: 5px !important;
}
.row .thread-entry,
.thread-list .thread-entry{
  display:flex !important;
  align-items:flex-start !important;
  gap:6px !important;
  padding-left: 0 !important;
}
.row .thread-entry::before,
.thread-list .thread-entry::before{
  content:'↳' !important;
  display:inline-flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:14px !important;
  min-width:14px !important;
  margin-top:.05em !important;
  color:var(--nm-thread-arrow) !important;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Apple SD Gothic Neo','Malgun Gothic',sans-serif !important;
  font-size:var(--nm-thread-size) !important;
  font-weight:800 !important;
  line-height:1.45 !important;
}
.row .thread-body,
.thread-list .thread-body{
  min-width:0 !important;
  flex:1 1 auto !important;
}
.row .thread-text,
.row .thread-text *,
.thread-list .thread-text,
.thread-list .thread-text *,
.thread-entry .thread-text,
.thread-entry .thread-text *,
.rsub,
.rsub *{
  font-family: var(--memo-family) !important;
  font-size: var(--nm-thread-size) !important;
  font-weight: var(--memo-weight) !important;
  font-style: var(--memo-style) !important;
  line-height: 1.45 !important;
  color: var(--nm-thread-color) !important;
  letter-spacing: -0.01em !important;
}
.thread-inp{
  font-family:var(--memo-family) !important;
  font-size:var(--nm-thread-size) !important;
  font-weight:var(--memo-weight) !important;
  font-style:var(--memo-style) !important;
  color:var(--nm-thread-color) !important;
}
.thread-inp::placeholder{ color:rgba(107,114,128,.55) !important; }
.mi{
  color:#374151 !important;
  font-weight:600 !important;
}
.mi .mi-ico{
  width:18px !important;
  min-width:18px !important;
  height:18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:var(--nm-menu-icon) !important;
  opacity:1 !important;
  font-size:16px !important;
  line-height:1 !important;
}
.mi .mi-ico i{
  color:currentColor !important;
  opacity:1 !important;
  font-size:16px !important;
  stroke-width:1.9 !important;
}
.mi.mi-lock .mi-ico{ color:#475569 !important; }
.mi.mi-copy .mi-ico{ color:#64748B !important; }
.mi.mi-restore .mi-ico{ color:#64748B !important; }
.mi.mi-done .mi-ico{ color:#475569 !important; }
.mi.mi-palette .mi-ico{ color:#64748B !important; }
.mi.dng{ color:var(--nm-menu-danger) !important; }
.mi.dng .mi-ico{ color:var(--nm-menu-danger) !important; }
.mi:hover{ background:rgba(15,23,42,.035) !important; }
.mi.dng:hover{ background:rgba(239,68,68,.06) !important; }

/* V303-W3.90.67 — App header board chip symmetry polish
   헤더 표시 UI만 변경. 메모장 전환/드롭다운/저장/삭제/동기화 로직 변경 없음. */
@media (max-width:600px){
  #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67,
  #tb .chip.mob-active-board-chip-v274.nm-header-board-chip-v303w67,
  #tb .chip.chip-h.mob-active-board-chip-v303w67,
  #tb .chip.chip-h.mob-active-board-chip-v274.nm-header-board-chip-v303w67{
    box-sizing:border-box !important;
    flex:0 0 30px !important;
    width:30px !important;
    min-width:30px !important;
    max-width:30px !important;
    height:30px !important;
    min-height:30px !important;
    max-height:30px !important;
    padding:0 !important;
    gap:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:999px !important;
    overflow:hidden !important;
  }
  #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .mob-active-chip-label-v274,
  #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .mob-active-count-v303w3{
    display:none !important;
  }
  #tb .nm-header-note-stack-icon-v303w67{
    width:16px !important;
    height:16px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    color:#fff !important;
    opacity:.96 !important;
    flex:0 0 16px !important;
    margin:0 !important;
    filter:drop-shadow(0 1px 1px rgba(0,0,0,.18)) !important;
  }
  #tb .nm-header-note-stack-icon-v303w67 svg{
    width:16px !important;
    height:16px !important;
    display:block !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.9 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
  }
  #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .nm-header-chip-caret-v303w67{
    position:absolute !important;
    right:3px !important;
    bottom:3px !important;
    width:7px !important;
    min-width:7px !important;
    height:7px !important;
    font-size:7px !important;
    line-height:7px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    color:rgba(255,255,255,.88) !important;
    text-shadow:none !important;
    opacity:.95 !important;
    margin:0 !important;
  }
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-90-85 — Android 광고 롱프레스 입력 복구
   - W3-90-84로 Cloudflare 반영 확인 완료
   - 광고 움직임 복구
   - 기존 mobile.css의 pointer-events:none 영향 제거
   ═══════════════════════════════════════════════════════ */
html.capacitor #ad-bar,
body.capacitor #ad-bar{
  pointer-events:auto !important;
  touch-action:manipulation !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  -webkit-touch-callout:none !important;
}
html.capacitor #ad-bar .nm-ad-viewport,
html.capacitor #ad-bar .nm-ad-track,
html.capacitor #ad-bar .nm-ad-item,
html.capacitor #ad-bar .nm-ad-item img,
body.capacitor #ad-bar .nm-ad-viewport,
body.capacitor #ad-bar .nm-ad-track,
body.capacitor #ad-bar .nm-ad-item,
body.capacitor #ad-bar .nm-ad-item img{
  pointer-events:auto !important;
  -webkit-touch-callout:none !important;
  -webkit-user-select:none !important;
  user-select:none !important;
}
html.capacitor #ad-bar .nm-ad-track,
body.capacitor #ad-bar .nm-ad-track{
  animation:nmAdMarqueeW39079 30s linear infinite !important;
  will-change:transform !important;
}
html.capacitor #ad-bar.paused .nm-ad-track,
body.capacitor #ad-bar.paused .nm-ad-track{
  animation-play-state:paused !important;
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-90-90 — 광고판 세로 여백 제거
   - 광고 영역 안에서 광고판이 위아래 빈틈 없이 꽉 차도록 조정
   - 터치 즉시 팝업 / 원터치 URL / 이동 기능 유지
   ═══════════════════════════════════════════════════════ */
html.capacitor #ad-bar .nm-ad-viewport,
body.capacitor #ad-bar .nm-ad-viewport,
html.capacitor #ad-bar .nm-ad-track,
body.capacitor #ad-bar .nm-ad-track{
  align-items:stretch !important;
}
html.capacitor #ad-bar .nm-ad-item,
body.capacitor #ad-bar .nm-ad-item{
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
}
html.capacitor #ad-bar .nm-ad-item img,
body.capacitor #ad-bar .nm-ad-item img{
  height:100% !important;
  object-fit:cover !important;
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-90-91 — Android 광고판 16:9 + 광고영역 세로 꽉 채움
   - 광고영역 높이/위치/Safe Area는 변경 없음
   - 광고판만 16:9 비율로, 높이는 광고영역 100%
   ═══════════════════════════════════════════════════════ */
html.capacitor #ad-bar,
body.capacitor #ad-bar{
  overflow:hidden !important;
}
html.capacitor #ad-bar .nm-ad-viewport,
body.capacitor #ad-bar .nm-ad-viewport,
html.capacitor #ad-bar .nm-ad-track,
body.capacitor #ad-bar .nm-ad-track{
  height:100% !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  align-items:stretch !important;
}
html.capacitor #ad-bar .nm-ad-item,
body.capacitor #ad-bar .nm-ad-item{
  box-sizing:border-box !important;
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  width:121px !important;
  min-width:121px !important;
  max-width:121px !important;
  flex:0 0 121px !important;
  aspect-ratio:16 / 9 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  overflow:hidden !important;
}
html.capacitor #ad-bar .nm-ad-item img,
body.capacitor #ad-bar .nm-ad-item img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
}


/* NuMemo W3-90-94 — Android 광고판 축소 + 무채색 임시광고 */
html.capacitor #ad-bar .nm-ad-viewport,
body.capacitor #ad-bar .nm-ad-viewport,
html.capacitor #ad-bar .nm-ad-track,
body.capacitor #ad-bar .nm-ad-track{
  align-items:center !important;
}
html.capacitor #ad-bar .nm-ad-item,
body.capacitor #ad-bar .nm-ad-item{
  box-sizing:border-box !important;
  height:52px !important;
  min-height:52px !important;
  max-height:52px !important;
  width:92px !important;
  min-width:92px !important;
  max-width:92px !important;
  flex:0 0 92px !important;
  aspect-ratio:16 / 9 !important;
  margin:4px 0 !important;
  padding:0 !important;
  border-radius:11px !important;
  background:#fff !important;
  border:1px solid rgba(148,163,184,.38) !important;
  box-shadow:0 1px 3px rgba(15,23,42,.12) !important;
  overflow:hidden !important;
}
html.capacitor #ad-bar .nm-ad-item img,
body.capacitor #ad-bar .nm-ad-item img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-91-04-FIX — 광고 10슬롯 완전 무한 루프
   - 10개 한 묶음 + 동일 묶음 복제
   - 실제 첫 묶음 픽셀폭만큼 이동
   - 1-2-3-4-5-6-7-8-9-10-1... 끊김 방지
   ═══════════════════════════════════════════════════════ */
#ad-bar .nm-ad-track.nm-ad-track-seamless,
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:0 !important;
  width:max-content !important;
  min-width:0 !important;
  height:100% !important;
  padding:0 !important;
  margin:0 !important;
  animation:nmAdTenSlotSeamlessLoopW39104 var(--nm-ad-loop-duration, 42s) linear infinite !important;
  will-change:transform !important;
}
#ad-bar .nm-ad-loop-set,
html.capacitor #ad-bar .nm-ad-loop-set,
body.capacitor #ad-bar .nm-ad-loop-set{
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:10px !important;
  height:100% !important;
  padding:0 10px 0 0 !important;
  margin:0 !important;
}
@keyframes nmAdTenSlotSeamlessLoopW39104{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(calc(-1 * var(--nm-ad-loop-distance, 1020px)),0,0); }
}
#ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
#ad-bar:hover .nm-ad-track.nm-ad-track-seamless,
html.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless{
  animation-play-state:paused !important;
}
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless{
  --nm-ad-loop-duration:30s;
}
html:not(.capacitor) body:not(.capacitor) #ad-bar .nm-ad-track.nm-ad-track-seamless{
  --nm-ad-loop-duration:42s;
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-91-04-FIX3 — Android WebView 광고 무한반복 최종 우선 규칙
   - 과거 mobile.css의 nmAdMarqueeW39079 강제 규칙보다 우선
   - 앱에서도 마지막 광고 다음 첫 광고가 바로 이어짐
   ═══════════════════════════════════════════════════════ */
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless{
  display:flex !important;
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:0 !important;
  gap:0 !important;
  animation:nmAdSeamlessLoopW39104Fix3 var(--nm-ad-loop-duration, 30s) linear infinite !important;
  will-change:transform !important;
}
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless .nm-ad-loop-set,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless .nm-ad-loop-set{
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:10px !important;
  height:100% !important;
  padding:0 10px 0 0 !important;
  margin:0 !important;
}
html.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless{
  animation-play-state:paused !important;
}

/* NuMemo W3-91-04-FIX4 — Android/WebView 광고 무한반복 우선 규칙 */
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless{
  display:flex !important;
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:0 !important;
  gap:0 !important;
  animation:nmAdSeamlessLoopW39104Fix4 var(--nm-ad-loop-duration, 30s) linear infinite !important;
  will-change:transform !important;
}
html.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless .nm-ad-loop-set,
body.capacitor #ad-bar .nm-ad-track.nm-ad-track-seamless .nm-ad-loop-set{
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:10px !important;
  height:100% !important;
  padding:0 10px 0 0 !important;
  margin:0 !important;
}
html.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless{
  animation-play-state:paused !important;
}


/* ═══════════════════════════════════════════════════════
   NuMemo W3-91-04-FIX6 — Android popup hard pause
   앱에서 광고 팝업 표시 중 광고 흐름 강제 정지
   ═══════════════════════════════════════════════════════ */
#ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
#ad-bar[data-nm-ad-paused="1"] .nm-ad-track.nm-ad-track-seamless,
html.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar.paused .nm-ad-track.nm-ad-track-seamless,
html.capacitor #ad-bar[data-nm-ad-paused="1"] .nm-ad-track.nm-ad-track-seamless,
body.capacitor #ad-bar[data-nm-ad-paused="1"] .nm-ad-track.nm-ad-track-seamless{
  animation-play-state:paused !important;
  -webkit-animation-play-state:paused !important;
}
@keyframes nmAdSeamlessLoopW39104Fix6{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(calc(-1 * var(--nm-ad-loop-distance, 1020px)),0,0); }
}

/* V303-W3.91.187: main.css의 .memo-due-suffix 색상 지정이 이 파일(mobile.css)의
   .rsub *{color:var(--nm-thread-color) !important} 규칙에 덮여써지고 있었다.
   mobile.css가 main.css보다 나중에 로드되기 때문에, 같은 위치(색상만 다르게)에서
   똑같이 !important로 다시 지정해줘야 실제로 이긴다. (지난번 입력창 자동확장 때와 동일한 원인) */
.memo-due-suffix{
  color:#dc2626 !important;
  font-weight:800 !important;
}

/* V303-W3.91.199: main.css의 캘린더 폰트 지정이 이 파일(나중에 로드됨)의 다른 규칙에
   덮여쓰일 가능성을 원천 차단하기 위해 여기서도 동일하게 !important로 다시 지정한다. */
.nm-cal-title,
.nm-cal-wd,
.nm-cal-daynum,
.nm-cal-item,
.nm-cal-item-input{
  font-family: var(--memo-family, inherit) !important;
}

/* V303-W3.91.218: main.css와 동일 — 이 파일이 나중에 로드되므로 여기서도 다시 지정해야 확실히 이긴다. */
/* V303-W3.91.219: main.css와 동일 — 입력창/버튼/마감일칩/중요도칩 색은 그대로 두고
   바깥 배경(.winp, .web-draft-tags/.mob-draft-tags)만 보드 색상으로 연하게. */
.winp,
.win[style*="--board-color"] .winp,
body:not(.mobile-mode) .win[style*="--board-color"] .winp{
  background: color-mix(in srgb, var(--board-color, #F97316) 6%, #ffffff) !important;
}
.web-draft-tags,
.mob-draft-tags{
  background: color-mix(in srgb, var(--board-color, #F97316) 5%, #ffffff) !important;
}

/* V303-W3.91.222: 이전 규칙(.mob-input-area 단독, 클래스 1개)은 이미 존재하던 더 구체적인 규칙
   (.mobbrd[style*="--board-color"] .mob-input-area, 속성선택자+클래스 2개 = 명시도가 더 높음)한테
   애초에 이길 수 없는 구조였다. !important끼리는 명시도가 먼저 결정되고 그다음에 파일 순서를 보기
   때문에, 파일 맨 끝에 넣어도 명시도가 낮으면 소용없었다. 이번엔 명시도를 똑같이 맞춰서 다시 넣는다.
   V303-W3.91.226: 223번에서 넣었던 margin 오버라이드(0 8px 8px)를 되돌린다 — 오히려 더 침범한
   것처럼 보인다는 피드백이 있어서, 배경색만 바꾸고 여백은 원래 있던 규칙(위쪽의 다른 .mob-input-area
   규칙들)이 그대로 적용되도록 손대지 않는다. */
.mobbrd[style*="--board-color"] .mob-input-area{
  background: color-mix(in srgb, var(--board-color) 6%, #ffffff) !important;
  border-bottom-left-radius: 11px !important;
  border-bottom-right-radius: 11px !important;
}

/* V303-W3.91.230: main.css와 동일 — 이 파일이 나중에 로드되므로 여기서도 다시 지정. */
.draft-row-label-v230{
  flex:0 0 auto;
  font-size:9.5px;
  font-weight:700;
  color:var(--txt3);
  white-space:nowrap;
}
.web-draft-tags .mob-draft-tag,
.mob-draft-tags .mob-draft-tag{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  min-height:16px !important;
  flex:0 0 16px !important;
  border-radius:50% !important;
  background:var(--tag) !important;
  border:0 !important;
  padding:0 !important;
}
.web-draft-tags .mob-draft-tag.on,
.mob-draft-tags .mob-draft-tag.on{
  box-shadow:0 0 0 2px color-mix(in srgb, var(--board-color, #fff) 5%, #fff), 0 0 0 3.5px #F97316 !important;
}
.web-draft-tags .nm-normal-tag-text-v303w8,
.mob-draft-tags .nm-normal-tag-text-v303w8{
  display:none !important;
}
.draft-tagbar-left.kbd-focus .mob-draft-tag.on{
  outline:0 !important;
}
.draft-duebox{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  gap:6px !important;
}
.draft-duebox.kbd-focus{
  border:0 !important;
  box-shadow:none !important;
  outline:2px solid #F97316 !important;
  outline-offset:3px !important;
  border-radius:6px !important;
}
.draft-duebox .draft-due-input{
  color:var(--txt3) !important;
  font-weight:600 !important;
}
.draft-duebox.has-due .draft-due-input{
  color:var(--txt3) !important;
  font-weight:800 !important;
}

/* V303-W3.91.231: main.css와 동일. */
.draft-tagbar-left{
  gap:5px !important;
}
.mob-plus-btn{
  width:28px !important;
  height:28px !important;
}
.send-btn,
.mob-send-btn{
  width:28px !important;
  height:28px !important;
}
.draft-due-input{
  text-align:center !important;
}

/* V303-W3.91.232: main.css와 동일. */
.draft-tagbar-left{
  gap:8px !important;
}
.draft-duebox{
  min-width:150px;
  justify-content:center !important;
}
.edit-due-slot{
  margin-left:auto !important;
  flex:0 0 auto;
  display:flex;
  align-items:center;
}
.edit-duebox{
  min-width:0 !important;
  justify-content:flex-start !important;
  gap:3px !important;
}
html.capacitor .edit-duebox .draft-due-label{
  margin-right:0 !important;
}
@media (max-width:600px){
  html.capacitor .edit-duebox{
    gap:1px !important;
  }
}
.draft-due-input{
  width:auto !important;
  flex:0 1 auto !important;
}
@media (max-width:420px){
  .draft-duebox{ min-width:120px; }
}

/* V303-W3.91.234: 앱 전용 — 중요도/마감일 줄 수평 정렬 보정(글씨가 굵어질 때 살짝 어긋나던 것),
   +/전송 아이콘 2px씩 축소(28px -> 26px). html.capacitor로 앱에만 한정해서 웹에는 영향 없게 한다. */
html.capacitor .draft-tagbar-left,
html.capacitor .draft-duebox{
  align-items:center !important;
}
html.capacitor .draft-row-label-v230,
html.capacitor .draft-due-label,
html.capacitor .mob-draft-tag,
html.capacitor .draft-due-input,
html.capacitor .draft-due-clear{
  align-self:center !important;
}
html.capacitor .draft-due-input{
  line-height:1 !important;
  height:14px !important;
  box-sizing:border-box !important;
}
html.capacitor .mob-plus-btn{
  width:22px !important;
  height:22px !important;
}
html.capacitor .send-btn,
html.capacitor .mob-send-btn{
  width:22px !important;
  height:22px !important;
}
/* V303-W3.91.238: 메모 입력창을 우측(전송 버튼 쪽)으로 1.5px 더 확장 —
   행의 gap(양쪽 균등)은 그대로 두고, 입력창 자체만 오른쪽으로 살짝 밀어넣는다. */
html.capacitor .mob-textarea{
  margin-right:-1.5px !important;
}

/* V303-W3.91.240: "+"/전송 버튼이 너무 커서 입력창이 오른쪽으로 치우쳐 보이던 문제 —
   html.capacitor 조건 없이 일반적으로도 버튼을 줄여서 입력창이 최대한 넓고 중앙에 오도록 한다.
   (실제 앱뿐 아니라 좁은 화면의 웹 브라우저에서도 이 마크업(.mob-textarea)이 쓰이기 때문) */
.mob-plus-btn{
  width:24px !important;
  height:24px !important;
}
.send-btn,
.mob-send-btn{
  width:24px !important;
  height:24px !important;
}

/* V303-W3.91.242: 앱 전용 +/전송 버튼을 15% 추가 축소(22px -> 19px). 파일 맨 끝에 다시 선언해서
   위치상으로도, 명시도상으로도(html.capacitor 2클래스) 확실하게 이기도록 한다.
   전송 버튼만 왼쪽으로 2px 이동(플러스 버튼은 그대로). */
/* V303-W3.91.243: html.capacitor 감지가 이 기기에서 안 붙고 있을 가능성이 높아서(원격 URL 로드
   방식이라 Capacitor 브릿지가 주입 안 되고, appendUserAgent도 설정 안 되어 있음), 감지 클래스에
   의존하지 않고 화면 폭 기준으로 다시 건다 — 폰 화면이면 무조건 참이라 기기와 무관하게 확실히 먹힌다. */
@media (max-width:600px){
  .mob-plus-btn{
    width:19px !important;
    height:19px !important;
  }
  .send-btn,
  .mob-send-btn{
    width:19px !important;
    height:19px !important;
    margin-left:-2px !important;
  }
}

/* W3.305: 위 태블릿 전용 규칙들을 폰에는 영향 없도록 폭 조건(min-width:601px)으로 한 번 더 감쌈 */
@media (min-width: 601px) {
/* ══════════════════════════════════════════════════════════════
   W3.302: 태블릿 Capacitor 대응 (재작업) — main.css + mobile.css의
   모든 max-width 미디어쿼리(420~860px)에서 헤더/카드/색상/툴바 관련
   규칙을 찾아 html.capacitor로 복제. main.css → mobile.css 원래 로드
   순서 그대로 보존(mobile.css가 나중에 로드되어 우선순위 높음).
   ══════════════════════════════════════════════════════════════ */
html.capacitor .row-tag-btn {
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
}
html.capacitor #ad-bar {
  display: none !important;
}
html.capacitor .chip {
  opacity:.4 !important;
}
html.capacitor .chip.fr {
  opacity:1 !important;
}
html.capacitor .row .rm {
  padding-top:5px !important;
  padding-bottom:5px !important;
}
html.capacitor .pdf-card {
  padding:6px 8px !important;
  min-height:50px !important;
}
html.capacitor .pimg,
html.capacitor .mig,
html.capacitor .vmemo {
  margin-top:3px !important;
  margin-bottom:1px !important;
}
html.capacitor .row .rm {
  padding-top:4px !important;
  padding-bottom:4px !important;
}
html.capacitor .pdf-card {
  margin-top:0 !important;
  margin-bottom:2px !important;
}
html.capacitor .pimg,
html.capacitor .mig,
html.capacitor .vmemo {
  margin-top:0 !important;
  margin-bottom:2px !important;
}
html.capacitor .rt,
html.capacitor .rt-line {
  line-height: 1.24 !important;
}
html.capacitor .pimg,
html.capacitor .mig.c1 {
  max-width: min(230px, 64vw) !important;
}
html.capacitor .pimg img,
html.capacitor .mig.c1 .mc img {
  max-width: min(230px, 64vw) !important;
  max-height: 300px !important;
}
html.capacitor .mig.c2,
html.capacitor .mig.c3 {
  gap: 5px !important;
}
html.capacitor .mig.c2 .mc,
html.capacitor .mig.c3 .mc {
  min-height: 96px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 8px !important;
  background: #111 !important;
}
html.capacitor .mig.c2 .mc img,
html.capacitor .mig.c3 .mc img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 8px !important;
}
html.capacitor .pimg,
html.capacitor .mig.c1 {
  max-width: min(280px, 78vw) !important;
}
html.capacitor .pimg img,
html.capacitor .mig.c1 .mc img {
  max-width: min(280px, 78vw) !important;
  max-height: 340px !important;
}
html.capacitor .mobbrd {
  overflow:visible !important;
  position:relative !important;
  isolation:isolate !important;
}
html.capacitor .mob-unified-hdr {
  position:relative !important;
  overflow:visible !important;
  z-index:5000 !important;
  display:grid !important;
  grid-template-columns:36px minmax(0,1fr) 66px 36px !important;
  align-items:center !important;
  column-gap:4px !important;
  min-height:46px !important;
  padding:7px 8px !important;
}
html.capacitor .mob-unified-hdr::before {
  z-index:0 !important;
}
html.capacitor .mob-unified-hdr > * {
  position:relative !important;
  z-index:2 !important;
}
html.capacitor .mob-board-name {
  position:static !important;
  transform:none !important;
  grid-column:2 !important;
  justify-self:center !important;
  align-self:center !important;
  max-width:100% !important;
  min-width:0 !important;
  padding:0 4px !important;
  font-size:13.2px !important;
  line-height:1.1 !important;
  font-weight:720 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  text-align:center !important;
}
html.capacitor .mob-board-name i,
html.capacitor .mob-board-name .ti,
html.capacitor .mob-unified-hdr > i,
html.capacitor .mob-unified-hdr .ti-lock,
html.capacitor .mob-unified-hdr .ti-lock-open,
html.capacitor .mob-unified-hdr .ti-lock-square,
html.capacitor .mob-unified-hdr .ti-lock-access,
html.capacitor .mob-unified-hdr .ti-eye,
html.capacitor .mob-unified-hdr .ti-eye-off,
html.capacitor .mob-unified-hdr .ti-eye-x {
  display:none !important;
  width:0 !important;
  min-width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
html.capacitor .mob-hdr-right {
  grid-column:3 !important;
  justify-self:end !important;
  display:flex !important;
  align-items:center !important;
  gap:4px !important;
  margin:0 !important;
  overflow:visible !important;
  z-index:6000 !important;
}
html.capacitor .mob-hdr-right > div {
  position:relative !important;
  overflow:visible !important;
  z-index:6001 !important;
}
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr button:not(.mob-nav-btn) {
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:9px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
}
html.capacitor .mob-nav-btn {
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  z-index:5500 !important;
}
html.capacitor .mob-unified-hdr .bmenu {
  position:absolute !important;
  top:calc(100% + 8px) !important;
  right:0 !important;
  left:auto !important;
  z-index:2147483000 !important;
  min-width:188px !important;
  max-width:calc(100vw - 22px) !important;
  overflow:visible !important;
  transform:none !important;
  box-shadow:0 18px 46px rgba(15,23,42,.18),0 3px 10px rgba(15,23,42,.10) !important;
}
html.capacitor .mobbdy {
  position:relative !important;
  z-index:1 !important;
}
html.capacitor .chip[onclick="oNM()"],
html.capacitor .chip.chip-h[onclick="oNM()"],
html.capacitor button.chip[onclick="oNM()"],
html.capacitor button.chip.chip-h[onclick="oNM()"] {
  width:34px !important;
  min-width:34px !important;
  height:34px !important;
  padding:0 !important;
  border-radius:17px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 34px !important;
  background:linear-gradient(180deg, rgba(255,125,24,.98), rgba(231,98,0,.98)) !important;
  border:1px solid rgba(215,91,0,.42) !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(255,111,0,.22), inset 0 1px 0 rgba(255,255,255,.32) !important;
  opacity:1 !important;
  visibility:visible !important;
}
html.capacitor .chip[onclick="oNM()"] i,
html.capacitor .chip.chip-h[onclick="oNM()"] i,
html.capacitor button.chip[onclick="oNM()"] i,
html.capacitor button.chip.chip-h[onclick="oNM()"] i {
  color:#fff !important;
  font-size:18px !important;
  line-height:1 !important;
  opacity:1 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.16) !important;
}
html.capacitor .mob-draft-tags {
  padding:0 18px 8px 18px !important;
}
html.capacitor .mob-draft-tags .mob-draft-tag {
  width:32px !important;
  min-width:32px !important;
}
html.capacitor .mob-textarea {
  border-radius:22px !important;
}
html.capacitor .mob-draft-tags {
  padding:2px 18px 7px 18px !important;
  gap:11px !important;
}
html.capacitor .mob-draft-tags .mob-draft-tag {
  width:32px !important;
  min-width:32px !important;
  max-width:32px !important;
}
html.capacitor #app {
  padding-top:18px !important;
}
html.capacitor #app {
  padding-top:max(18px, env(safe-area-inset-top)) !important;
}
html.capacitor #tb.tb {
  gap:5px !important;
  padding-left:5px !important;
  padding-right:5px !important;
}
html.capacitor #tb .tb-chips-scroll {
  gap:5px !important;
}
html.capacitor #tb .chip,
html.capacitor #tb .chip.chip-h {
  height:27px !important;
  min-height:27px !important;
  padding:0 10px !important;
  border-radius:10px !important;
  font-size:11.5px !important;
  font-weight:700 !important;
}
html.capacitor #tb .tb-settings-btn,
html.capacitor #tb .tb-collapse-btn {
  width:27px !important;
  height:27px !important;
  min-width:27px !important;
  border-radius:10px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,249,251,.92)) !important;
  border:1px solid rgba(31,36,48,.085) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 2px 7px rgba(17,24,39,.055) !important;
}
html.capacitor #tb.tb,
html.capacitor #tb .tb-chips-scroll {
  overflow:visible !important;
}
html.capacitor #tb .chip:hover,
html.capacitor #tb .chip.fr,
html.capacitor #tb .chip.chip-h:hover,
html.capacitor #tb .chip.chip-h.fr {
  transform:translateY(0) !important;
}
html.capacitor #tb.tb {
  padding-left:max(10px, calc(env(safe-area-inset-left, 0px) + 8px)) !important;
  padding-right:max(7px, calc(env(safe-area-inset-right, 0px) + 6px)) !important;
}
html.capacitor #tb .tb-chips-scroll {
  padding-left:4px !important;
  padding-right:4px !important;
  scroll-padding-left:8px !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
}
html.capacitor #tb .tb-chips-scroll .chip:first-child,
html.capacitor #tb .tb-chips-scroll .chip.chip-h:first-child {
  margin-left:1px !important;
}
html.capacitor #tb.tb {
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:6px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  padding-top:4px !important;
  padding-bottom:5px !important;
  padding-left:max(9px, calc(env(safe-area-inset-left, 0px) + 8px)) !important;
  padding-right:max(6px, calc(env(safe-area-inset-right, 0px) + 6px)) !important;
}
html.capacitor #tb .tb-chips-scroll {
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:calc(100% - 34px) !important;
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  box-sizing:border-box !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  padding:3px 2px 4px 6px !important;
  scroll-padding-left:10px !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-width:none !important;
}
html.capacitor #tb .tb-chips-scroll::-webkit-scrollbar {
  display:none !important;
}
html.capacitor #tb .tb-chips-scroll .chip,
html.capacitor #tb .tb-chips-scroll .chip.chip-h {
  flex:0 0 auto !important;
  box-sizing:border-box !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  overflow:visible !important;
}
html.capacitor #tb .tb-settings-btn,
html.capacitor #tb .tb-collapse-btn {
  flex:0 0 27px !important;
  width:27px !important;
  min-width:27px !important;
  max-width:27px !important;
  height:27px !important;
  min-height:27px !important;
  max-height:27px !important;
  margin:3px 0 0 0 !important;
  position:relative !important;
  z-index:3 !important;
}
html.capacitor .mob-textarea {
  border-radius:14px !important;
  min-height:40px !important;
  padding:8px 14px !important;
}
html.capacitor .mob-textarea {
  min-height:34px !important;
  height:34px !important;
  padding:6px 12px !important;
  line-height:20px !important;
}
html.capacitor .mob-input-area {
  padding-top:6px !important;
  padding-bottom:8px !important;
}
html.capacitor .mob-input-area .mob-input-row {
  min-height:38px !important;
}
html.capacitor #tb .mob-active-board-chip-v274,
html.capacitor #tb .chip.mob-active-board-chip-v274,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274 {
  box-sizing:border-box !important;
  height:32px !important;
  min-height:32px !important;
  width:212px !important;
  min-width:212px !important;
  max-width:min(212px, calc(100vw - 92px)) !important;
  padding:4px 10px 4px 12px !important;
  border:1px solid rgba(255,255,255,.34) !important;
  outline:0 !important;
  transform:none !important;
  transition:background-color .18s ease, color .18s ease, opacity .18s ease, filter .18s ease, box-shadow .18s ease !important;
}
html.capacitor #tb .mob-active-chip-label-v274 {
  flex:1 1 auto !important;
  min-width:0 !important;
  font-weight:700 !important;
}
html.capacitor #tb .mob-active-count-v303w3 {
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  min-width:38px !important;
  max-width:38px !important;
  height:20px !important;
  padding:0 5px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.24) !important;
  color:rgba(255,255,255,.96) !important;
  font-size:10px !important;
  font-weight:900 !important;
  line-height:1 !important;
}
html.capacitor #tb .mob-active-chip-caret-v274 {
  width:14px !important;
  min-width:14px !important;
  text-align:center !important;
}
html.capacitor .mob-board-dropdown-v274 {
  box-sizing:border-box !important;
}
html.capacitor .mob-board-dropdown-item-v274,
html.capacitor .mob-board-dropdown-item-v274.active {
  box-sizing:border-box !important;
  height:50px !important;
  min-height:50px !important;
  max-height:50px !important;
  padding:10px 12px !important;
  border:0 !important;
  outline:0 !important;
  transform:none !important;
  transition:background-color .16s ease, color .16s ease, opacity .16s ease !important;
}
html.capacitor .mob-board-dropdown-dot-v274 {
  width:10px !important;
  min-width:10px !important;
  height:10px !important;
}
html.capacitor .mob-board-dropdown-name-v274 {
  font-weight:700 !important;
  line-height:1 !important;
}
html.capacitor .mob-board-dropdown-state-v303w32 {
  box-sizing:border-box !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:24px !important;
  min-height:24px !important;
  padding:0 6px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  font-size:10px !important;
  font-weight:900 !important;
  line-height:1 !important;
}
html.capacitor #tb .tb-active-chip-wrap-v274 {
  flex:1 1 0 !important;
  min-width:0 !important;
  max-width:126px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  z-index:2 !important;
}
html.capacitor #tb .mob-active-board-chip-v274,
html.capacitor #tb .chip.mob-active-board-chip-v274,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274 {
  box-sizing:border-box !important;
  height:24px !important;
  min-height:24px !important;
  width:118px !important;
  min-width:0 !important;
  max-width:118px !important;
  padding:2px 7px 2px 8px !important;
  border-radius:999px !important;
  gap:4px !important;
  align-self:center !important;
  transform:none !important;
  box-shadow:0 4px 11px rgba(15,23,42,.10) !important;
  transition:background-color .18s ease, color .18s ease, opacity .18s ease, filter .18s ease, box-shadow .18s ease !important;
}
html.capacitor #tb .mob-active-chip-label-v274 {
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:10px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:-.02em !important;
}
html.capacitor #tb .mob-active-count-v303w3 {
  display:none !important;
}
html.capacitor #tb .mob-active-chip-caret-v274 {
  font-size:11px !important;
  line-height:1 !important;
  flex:0 0 auto !important;
}
html.capacitor .row .rb .pimg,
html.capacitor .row .rb .mig.c1 {
  max-width:min(230px, 100%) !important;
}
html.capacitor .row .rb .pimg img,
html.capacitor .row .rb .mig.c1 .mc img {
  max-width:100% !important;
  max-height:300px !important;
}
html.capacitor .mob-unified-hdr::before {
  display:none !important;
  content:none !important;
}
html.capacitor .mob-unified-hdr .mob-board-name {
  color:#fff !important;
  font-weight:850 !important;
  font-size:13px !important;
  letter-spacing:-.03em !important;
  text-align:center !important;
}
html.capacitor .mob-unified-hdr .mob-board-name i,
html.capacitor .mob-unified-hdr .mob-board-name .ti,
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn),
html.capacitor .mob-unified-hdr .mob-nav-btn > i,
html.capacitor .mob-unified-hdr .wb2 > i,
html.capacitor .mob-unified-hdr .ib > i,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i {
  color:#fff !important;
  stroke:currentColor !important;
  fill:currentColor !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:999px !important;
  opacity:.96 !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn:hover,
html.capacitor .mob-unified-hdr .wb2:hover,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):hover,
html.capacitor .mob-unified-hdr .mob-nav-btn:active,
html.capacitor .mob-unified-hdr .wb2:active,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):active {
  background:rgba(255,255,255,.14) !important;
}
html.capacitor .mob-input-area .mob-input-row {
  gap:9px !important;
  align-items:center !important;
}
html.capacitor .mob-input-area .mob-input-row textarea.mob-textarea,
html.capacitor .mob-input-row textarea.mob-textarea {
  min-height:36px !important;
  height:36px !important;
  border-radius:999px !important;
  padding:8px 14px !important;
}
html.capacitor #tb.tb {
  border-bottom:0 !important;
  box-shadow:none !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"],
html.capacitor .mobbrd[style*="--board-color"] .mob-unified-hdr {
  border-bottom:0 !important;
  box-shadow:none !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mobbdy {
  border-top:0 !important;
}
html.capacitor .row .thread-entry,
html.capacitor .thread-list .thread-entry {
  grid-template-columns:21px minmax(0,1fr) !important;
  column-gap:5px !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  width:15px !important;
  height:10px !important;
}
html.capacitor .row .thread-entry,
html.capacitor .thread-list .thread-entry {
  grid-template-columns:19px minmax(0,1fr) !important;
  column-gap:5px !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  width:19px !important;
  font-size:calc(var(--nm-thread-size, calc(var(--memo-size) - 1.5px)) + 1px) !important;
}
html.capacitor .row .thread-entry,
html.capacitor .thread-list .thread-entry {
  grid-template-columns:17px minmax(0,1fr) !important;
  column-gap:3px !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  width:17px !important;
  transform:translateY(-2px) !important;
}
html.capacitor .row .thread-entry,
html.capacitor .thread-list .thread-entry {
  grid-template-columns:16px minmax(0,1fr) !important;
  column-gap:3px !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  width:16px !important;
  transform:translateY(-4px) !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  width:16px !important;
  transform:translateY(-5px) !important;
}
html.capacitor .row .thread-entry::before,
html.capacitor .thread-list .thread-entry::before {
  transform:translateY(-4px) !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67,
html.capacitor #tb .chip.mob-active-board-chip-v274.nm-header-board-chip-v303w67,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274.nm-header-board-chip-v303w67 {
  box-sizing:border-box !important;
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  height:30px !important;
  min-height:30px !important;
  max-height:30px !important;
  padding:0 !important;
  gap:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  overflow:hidden !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .mob-active-chip-label-v274,
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .mob-active-count-v303w3 {
  display:none !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .nm-header-note-stack-icon-v303w67 {
  width:16px !important;
  height:16px !important;
  flex-basis:16px !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .nm-header-note-stack-icon-v303w67 svg {
  width:16px !important;
  height:16px !important;
  stroke-width:1.9 !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .nm-header-chip-caret-v303w67 {
  right:3px !important;
  bottom:3px !important;
  width:7px !important;
  min-width:7px !important;
  height:7px !important;
  font-size:7px !important;
  line-height:7px !important;
}
html.capacitor #ad-bar {
  display: flex !important;
  flex: 0 0 60px !important;
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
}
html.capacitor #ad-bar .nm-ad-track {
  gap: 8px !important;
  animation-duration: 30s !important;
}
html.capacitor #ad-bar .nm-ad-item {
  width:121px !important;
  min-width:121px !important;
  max-width:121px !important;
  flex-basis:121px !important;
}
html.capacitor #ad-bar .nm-ad-item {
  height:52px !important;
  min-height:52px !important;
  max-height:52px !important;
  width:92px !important;
  min-width:92px !important;
  max-width:92px !important;
  flex:0 0 92px !important;
  margin:4px 0 !important;
}
html.capacitor .web-draft-tags,
html.capacitor .mob-draft-tags {
  gap:6px !important;
  padding-left:5px !important;
  padding-right:5px !important;
}
html.capacitor .web-draft-tags .mob-draft-tag,
html.capacitor .mob-draft-tags .mob-draft-tag {
  width:19px !important;
  min-width:19px !important;
  flex:0 0 19px !important;
}
html.capacitor .mobbrd[style*="--board-color"] {
  background:#ffffff !important;
  border:1px solid #e5e7eb !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mobbdy {
  margin:0 !important;
  padding:0 0 10px 8px !important;
  background:#ffffff !important;
  border:0 !important;
  border-radius:0 !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mob-input-area {
  margin:0 !important;
  padding:10px 0 0 0 !important;
  background:#ffffff !important;
  border:0 !important;
  border-top:1px solid #eef0f3 !important;
  border-bottom-left-radius:8px !important;
  border-bottom-right-radius:8px !important;
  box-shadow:none !important;
}
html.capacitor #app {
  /* iOS Safari 주소창 흔들림 방지 */
    height: 100dvh !important;
  min-height: -webkit-fill-available !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
html.capacitor .wrap {
  flex:1 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  padding:0 8px 0 !important;
  min-height:0 !important;
}
html.capacitor .mobv {
  flex:1 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}
html.capacitor .mobbrd {
  flex: 1 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  border: 1px solid var(--bdr3) !important;
  border-radius: var(--radius) !important;
  min-height: 0 !important;
}
html.capacitor .mob-unified-hdr {
  display: flex !important;
  align-items: center !important;
  padding: 8px 10px !important;
  flex-shrink: 0 !important;
  color: #fff !important;
  user-select: none !important;
  position: relative !important;
  gap: 4px !important;
}
html.capacitor .mob-nav-btn {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.2) !important;
  border: none !important;
  color: #fff !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  flex-shrink: 0 !important;
}
html.capacitor .mob-nav-btn:disabled {
  opacity: .3 !important;
}
html.capacitor .mob-board-name {
  position: absolute !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  max-width: 50% !important;
  pointer-events: auto !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-align: center !important;
}
html.capacitor .mob-hdr-right {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  flex-shrink: 0 !important;
  margin-left: auto !important;
}
html.capacitor .mobbdy {
  flex: 1 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  padding: 0 0 6px 8px !important;
  background: var(--bg) !important;
  min-height: 0 !important;
  will-change: scroll-position !important;
}
html.capacitor .mob-input-area {
  flex-shrink: 0 !important;
  padding: 6px 8px max(8px, env(safe-area-inset-bottom)) !important;
  background: var(--bg) !important;
  border-top: 1px solid var(--bdr3) !important;
  margin-bottom: 0 !important;
}
html.capacitor .mob-input-area {
  padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
}
html.capacitor .mob-textarea {
  flex: 1 !important;
  font-size: 16px !important;
  padding: 8px 10px !important;
  border: 1px solid var(--bdr2) !important;
  border-radius: 20px !important;
  background: var(--bg) !important;
  color: var(--txt) !important;
  outline: none !important;
  resize: none !important;
  overflow: hidden !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
  min-height: 36px !important;
  max-height: 100px !important;
  -webkit-tap-highlight-color: transparent !important;
}
html.capacitor .mob-textarea:focus {
  border-color: #F97316 !important;
}
html.capacitor .ra {
  opacity: 1 !important;
}
html.capacitor .rt,
html.capacitor .ea,
html.capacitor .mob-textarea {
  font-size: var(--memo-size) !important;
}
html.capacitor .rbt.dl {
  display: none !important;
}
html.capacitor .tb-chips-scroll {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  overflow-x: auto !important;
  flex: 1 !important;
  min-width: 0 !important;
  padding: 2px 0 !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
html.capacitor .tb-chips-scroll::-webkit-scrollbar {
  display: none !important;
}
html.capacitor .chip.chip-h {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  width: auto !important;
  min-width: max-content !important;
  height: 26px !important;
  padding: 2px 9px !important;
  border-radius: 13px !important;
  font-size: 11px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  flex: 0 0 auto !important;
  overflow: visible !important;
  white-space: nowrap !important;
  max-width: none !important;
  text-overflow: clip !important;
}
html.capacitor #app {
  height: 100dvh !important;
  min-height: 100dvh !important;
  padding-bottom: max(56px, env(safe-area-inset-bottom)) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
html.capacitor .wrap,
html.capacitor .mobv,
html.capacitor #mba,
html.capacitor .mobbrd {
  min-height: 0 !important;
}
html.capacitor .mob-input-area {
  padding: 6px 8px 8px !important;
  margin-bottom: 0 !important;
  flex-shrink: 0 !important;
}
html.capacitor .mobbdy {
  padding-bottom: 8px !important;
}
html.capacitor .rbt.dl {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #e24b4a !important;
}
html.capacitor .ra {
  opacity: 1 !important;
  gap: 3px !important;
}
html.capacitor .mob-draft-tags {
  display: none !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 48px 6px 48px !important;
}
html.capacitor .mob-draft-tags.on {
  display: flex !important;
}
html.capacitor .mob-input-area {
  padding-bottom: calc(8px + var(--numemo-system-nav-safe)) !important;
}
html.capacitor .mobbdy {
  padding-bottom: calc(12px + var(--numemo-system-nav-safe)) !important;
}
html.capacitor #app {
  height:100dvh !important;
  min-height:100dvh !important;
  max-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  padding-top:0 !important;
  padding-bottom:var(--nm-apk-nav-safe) !important;
  background:var(--bg) !important;
}
html.capacitor .wrap {
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding-left:6px !important;
  padding-right:6px !important;
  padding-bottom:0 !important;
}
html.capacitor .mobv,
html.capacitor #mba,
html.capacitor .mobbrd {
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow:hidden !important;
}
html.capacitor .mobbrd {
  margin-bottom:0 !important;
  border-radius:10px !important;
}
html.capacitor .mobbdy {
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  padding-bottom:10px !important;
}
html.capacitor .mob-input-area {
  position:relative !important;
  flex-shrink:0 !important;
  padding:6px 8px 8px !important;
  margin:0 !important;
  background:var(--bg) !important;
  border-top:1px solid var(--bdr3) !important;
  box-shadow:0 -2px 10px rgba(0,0,0,.04) !important;
  z-index:50 !important;
}
html.capacitor .row:not(.ed) .ra {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
html.capacitor .row.ed .ra {
  display: none !important;
}
html.capacitor .rt,
html.capacitor .thread-text {
  cursor: text !important;
  -webkit-tap-highlight-color: rgba(249,115,22,.12) !important;
}
html.capacitor .row {
  -webkit-touch-callout: none !important;
}
html.capacitor .rt-line {
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  vertical-align:top!important;
}
html.capacitor .rt {
  display:inline!important;
  width:auto!important;
  max-width:100%!important;
}
html.capacitor .row:not(.ed) .ra,
html.capacitor .row.ed .ra {
  display: flex !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  align-self: flex-start !important;
  justify-content: flex-start !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  gap: 3px !important;
}
html.capacitor .row .rbt.ok,
html.capacitor .row .rbt.dl {
  display: flex !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  touch-action: manipulation !important;
}
html.capacitor .row .rbt.dl {
  color: #e24b4a !important;
}
html.capacitor .wrap {
  padding:0 10px 0 !important;
}
html.capacitor .chip {
  min-height:30px !important;
  padding:6px 12px !important;
  font-size:12px !important;
  border-radius:999px !important;
}
html.capacitor .mobbrd {
  border:1px solid rgba(31,36,48,.085) !important;
  border-radius:11px !important;
  background:rgba(255,255,255,.7) !important;
  box-shadow:0 16px 40px rgba(25,31,45,.075),0 2px 8px rgba(25,31,45,.04) !important;
  overflow:hidden !important;
}
html.capacitor .mob-unified-hdr {
  min-height:52px !important;
  padding:10px 12px !important;
}
html.capacitor .mob-board-name {
  font-size:18px !important;
  font-weight:900 !important;
  letter-spacing:-.045em !important;
  max-width:62% !important;
}
html.capacitor .mob-nav-btn {
  width:36px !important;
  height:36px !important;
  background:rgba(255,255,255,.22) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18) !important;
}
html.capacitor .mobbdy {
  padding:0 0 12px 8px !important;
  background:
      linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.28)),
      #fbfaf7 !important;
}
html.capacitor .row {
  border-radius:18px !important;
  margin-bottom:12px !important;
  border:1px solid rgba(31,36,48,.08) !important;
  background:rgba(255,255,255,.86) !important;
  box-shadow:0 10px 26px rgba(25,31,45,.055),0 1px 4px rgba(25,31,45,.035) !important;
}
html.capacitor .rb {
  padding:12px 10px 10px 10px !important;
}
html.capacitor .rt {
  font-weight:560 !important;
  line-height:1.52 !important;
  letter-spacing:-.025em !important;
}
html.capacitor .ra {
  padding-right:4px !important;
}
html.capacitor .rbt {
  width:32px !important;
  height:32px !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.7) !important;
}
html.capacitor .mig {
  gap:7px !important;
}
html.capacitor .mc,
html.capacitor .pimg,
html.capacitor .vmemo,
html.capacitor .pdf-card {
  border-radius:14px !important;
}
html.capacitor .mob-input-area {
  padding:10px 0 0 0 !important;
  background:rgba(255,255,255,.78) !important;
  border-top:1px solid rgba(31,36,48,.08) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}
html.capacitor .mob-textarea {
  min-height:42px !important;
  padding:10px 13px !important;
  border-radius:22px !important;
}
html.capacitor .mob-plus-btn,
html.capacitor .mob-send-btn {
  width:42px !important;
  height:42px !important;
}
html.capacitor .chip {
  min-height:32px !important;
  padding:7px 14px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.48) !important;
  filter:saturate(.62) brightness(1.08) !important;
  box-shadow:
      inset 0 0 0 999px rgba(255,255,255,.14),
      0 8px 18px rgba(25,31,45,.055) !important;
  opacity:.92 !important;
}
html.capacitor .chip.fr {
  filter:saturate(.72) brightness(1.08) !important;
}
html.capacitor .mob-unified-hdr {
  color:#222426 !important;
  border-bottom:1px solid rgba(31,36,48,.10) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.72) !important;
}
html.capacitor .mob-board-name {
  color:#222426 !important;
  text-shadow:none !important;
}
html.capacitor .mob-nav-btn,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button {
  background:rgba(255,255,255,.72) !important;
  color:#4b5563 !important;
  border:1px solid rgba(31,36,48,.075) !important;
  box-shadow:0 6px 16px rgba(25,31,45,.045) !important;
}
html.capacitor .row {
  border:1px solid rgba(31,36,48,.16) !important;
  box-shadow:0 12px 30px rgba(25,31,45,.080),0 1px 5px rgba(25,31,45,.055) !important;
  background:rgba(255,255,255,.92) !important;
}
html.capacitor .mobbdy .row + .row {
  margin-top:12px !important;
}
html.capacitor .mob-unified-hdr {
  position:relative !important;
  overflow:hidden !important;
  color:rgba(28,33,40,.94) !important;
  min-height:54px !important;
}
html.capacitor .mob-unified-hdr::before {
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.44)) !important;
  pointer-events:none !important;
  z-index:0 !important;
}
html.capacitor .mob-unified-hdr > * {
  position:relative !important;
  z-index:1 !important;
}
html.capacitor .mob-board-name {
  color:rgba(25,30,38,.96) !important;
  font-weight:900 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.45) !important;
}
html.capacitor .mob-nav-btn,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button {
  color:rgba(36,43,53,.78) !important;
  background:rgba(255,255,255,.54) !important;
  border:1px solid rgba(31,36,48,.105) !important;
  box-shadow:0 6px 16px rgba(25,31,45,.065) !important;
}
html.capacitor .mob-nav-btn:active,
html.capacitor .mob-unified-hdr .ib:active,
html.capacitor .mob-unified-hdr button:active {
  background:rgba(255,255,255,.82) !important;
  color:rgba(20,24,30,.94) !important;
}
html.capacitor .chip {
  filter:saturate(.78) brightness(1.04) !important;
  box-shadow:inset 0 0 0 999px rgba(255,255,255,.08),0 8px 18px rgba(25,31,45,.070) !important;
}
html.capacitor .chip.fr {
  filter:saturate(.90) brightness(1.02) !important;
  box-shadow:inset 0 0 0 999px rgba(255,255,255,.035),0 10px 22px rgba(25,31,45,.085) !important;
}
html.capacitor .mobbrd,
html.capacitor .mob-unified-hdr,
html.capacitor .mob-hdr-right,
html.capacitor .mob-hdr-right > div {
  overflow:visible !important;
}
html.capacitor .mob-unified-hdr {
  min-height:50px !important;
  padding:8px 10px !important;
  gap:5px !important;
}
html.capacitor .mob-board-name {
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  max-width:calc(100% - 170px) !important;
  font-size:16px !important;
  line-height:1.05 !important;
  font-weight:820 !important;
  letter-spacing:-.045em !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
html.capacitor .mob-board-name i,
html.capacitor .mob-unified-hdr .ti-lock,
html.capacitor .mob-unified-hdr .ti-lock-open,
html.capacitor .mob-unified-hdr .ti-eye,
html.capacitor .mob-unified-hdr .ti-eye-off,
html.capacitor .mob-unified-hdr .ti-eye-x,
html.capacitor .mob-unified-hdr .ti-lock-square,
html.capacitor .mob-unified-hdr .ti-lock-access {
  display:none !important;
}
html.capacitor .mob-hdr-right {
  gap:4px !important;
  margin-left:auto !important;
  margin-right:2px !important;
  z-index:5 !important;
}
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.mob-nav-btn) {
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  border-radius:10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  font-size:17px !important;
}
html.capacitor .mob-nav-btn {
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  font-size:16px !important;
  z-index:4 !important;
}
html.capacitor .mob-unified-hdr .bmenu {
  top:calc(100% + 8px) !important;
  right:0 !important;
  z-index:2147482500 !important;
  min-width:178px !important;
  overflow:hidden !important;
}
html.capacitor .mob-unified-hdr {
  min-height:46px !important;
  padding:7px 9px !important;
}
html.capacitor .mob-board-name {
  max-width:calc(100% - 158px) !important;
  font-size:13.5px !important;
  line-height:1.08 !important;
  font-weight:720 !important;
  letter-spacing:-.035em !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  color:rgba(28,32,39,.94) !important;
  text-shadow:none !important;
}
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.mob-nav-btn) {
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:9px !important;
  font-size:15px !important;
}
html.capacitor .mob-nav-btn {
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  border-radius:16px !important;
  font-size:15px !important;
}
html.capacitor .mob-hdr-right {
  gap:3px !important;
  margin-right:1px !important;
}
html.capacitor .mob-board-name i,
html.capacitor .mob-unified-hdr .ti-lock,
html.capacitor .mob-unified-hdr .ti-lock-open,
html.capacitor .mob-unified-hdr .ti-eye,
html.capacitor .mob-unified-hdr .ti-eye-off,
html.capacitor .mob-unified-hdr .ti-eye-x,
html.capacitor .mob-unified-hdr .ti-lock-square,
html.capacitor .mob-unified-hdr .ti-lock-access {
  display:none !important;
  width:0 !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  opacity:0 !important;
  visibility:hidden !important;
}
html.capacitor .mob-unified-hdr {
  min-height:40px !important;
  height:40px !important;
  padding:4px 8px !important;
  border-radius:20px 20px 0 0 !important;
}
html.capacitor .mob-board-name {
  font-size:12.6px !important;
  line-height:1.05 !important;
  font-weight:680 !important;
}
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr button:not(.mob-nav-btn) {
  width:25px !important;
  height:25px !important;
  min-width:25px !important;
  border-radius:8px !important;
}
html.capacitor .mob-nav-btn {
  width:29px !important;
  height:29px !important;
  min-width:29px !important;
}
html.capacitor .mobbdy {
  border-top-left-radius:0 !important;
  border-top-right-radius:0 !important;
}
html.capacitor .mob-unified-hdr:has(.bmenu.op),
html.capacitor .mob-hdr-right:has(.bmenu.op) {
  z-index:2147482000 !important;
}
html.capacitor .mob-unified-hdr .bmenu.op {
  display:block !important;
  position:absolute !important;
  top:calc(100% + 8px) !important;
  right:0 !important;
  z-index:2147483000 !important;
  min-width:188px !important;
  max-width:calc(100vw - 22px) !important;
  background:rgba(255,255,255,.98) !important;
  color:#242832 !important;
  border-radius:18px !important;
  border:1px solid rgba(31,36,48,.12) !important;
  box-shadow:0 22px 60px rgba(15,23,42,.18),0 4px 12px rgba(15,23,42,.08) !important;
}
html.capacitor .chip[style*="--board-color"] {
  background:color-mix(in srgb, var(--board-color) 14%, #fff) !important;
  color:color-mix(in srgb, var(--board-color) 78%, #1f2430) !important;
  border:1px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
  box-shadow:0 5px 14px rgba(25,31,45,.055), inset 0 1px 0 rgba(255,255,255,.74) !important;
  filter:none !important;
  text-shadow:none !important;
  opacity:1 !important;
}
html.capacitor .chip[style*="--board-color"].fr {
  background:color-mix(in srgb, var(--board-color) 20%, #fff) !important;
  border-color:color-mix(in srgb, var(--board-color) 46%, rgba(31,36,48,.14)) !important;
  color:color-mix(in srgb, var(--board-color) 86%, #111827) !important;
}
html.capacitor .mobbrd[style*="--board-color"] {
  background:color-mix(in srgb, var(--board-color) 5%, #fff) !important;
  border:1.5px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
  box-shadow:0 12px 30px rgba(25,31,45,.075),0 1px 4px rgba(25,31,45,.055) !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"] {
  background:linear-gradient(180deg, color-mix(in srgb, var(--board-color) 18%, #fff), color-mix(in srgb, var(--board-color) 12%, #fff)) !important;
  border-bottom:1.5px solid color-mix(in srgb, var(--board-color) 35%, rgba(31,36,48,.14)) !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"]::before {
  display:none !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"] .mob-board-name {
  color:color-mix(in srgb, var(--board-color) 78%, #172033) !important;
  font-weight:760 !important;
  text-shadow:none !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"] .wb2,
html.capacitor .mob-unified-hdr[style*="--board-color"] button:not(.mob-nav-btn),
html.capacitor .mob-unified-hdr[style*="--board-color"] .mob-nav-btn {
  background:rgba(255,255,255,.70) !important;
  color:color-mix(in srgb, var(--board-color) 62%, #364152) !important;
  border:1px solid color-mix(in srgb, var(--board-color) 24%, rgba(31,36,48,.12)) !important;
  box-shadow:0 5px 14px rgba(25,31,45,.055) !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mobbdy {
  background:linear-gradient(180deg, color-mix(in srgb, var(--board-color) 4%, #fff), color-mix(in srgb, var(--board-color) 8%, #fff)) !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mob-input-area {
  background:color-mix(in srgb, var(--board-color) 4%, rgba(255,255,255,.94)) !important;
  border-top:1px solid color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.10)) !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mob-textarea {
  border-color:color-mix(in srgb, var(--board-color) 22%, rgba(31,36,48,.12)) !important;
}
html.capacitor .mobbdy .row {
  border-color:rgba(31,36,48,.18) !important;
  box-shadow:0 9px 22px rgba(25,31,45,.075),0 1px 4px rgba(25,31,45,.055) !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
  padding:0 !important;
  line-height:1 !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn > i,
html.capacitor .mob-unified-hdr .wb2 > i,
html.capacitor .mob-unified-hdr .ib > i,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i,
html.capacitor .mob-hdr-right .ti,
html.capacitor .mob-nav-btn .ti {
  display:block !important;
  width:1em !important;
  height:1em !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  transform:none !important;
  text-align:center !important;
  flex:0 0 auto !important;
}
html.capacitor .mob-hdr-right {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
}
html.capacitor .mob-hdr-right > div {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
html.capacitor .mob-board-name {
  font-size:10.6px !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
}
html.capacitor .tb-chips-scroll .chip,
html.capacitor .chip,
html.capacitor .chip.chip-h,
html.capacitor button.chip,
html.capacitor button.chip.chip-h {
  font-size:9.5px !important;
  line-height:1 !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) {
  display:inline-grid !important;
  place-items:center !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
  padding:0 !important;
  margin:0 !important;
  line-height:0 !important;
  overflow:hidden !important;
}
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr button:not(.mob-nav-btn):not(.bmi):not(.mam-item):not(.mob-media-btn) {
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  max-width:26px !important;
  min-height:26px !important;
  max-height:26px !important;
  border-radius:9px !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn {
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  min-height:30px !important;
  max-height:30px !important;
  border-radius:999px !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn > i,
html.capacitor .mob-unified-hdr .wb2 > i,
html.capacitor .mob-unified-hdr .ib > i,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i,
html.capacitor .mob-hdr-right .ti,
html.capacitor .mob-nav-btn .ti {
  display:grid !important;
  place-items:center !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
  font-size:16px !important;
  position:relative !important;
  top:0 !important;
  left:0 !important;
  transform:none !important;
  text-align:center !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn > i::before,
html.capacitor .mob-unified-hdr .wb2 > i::before,
html.capacitor .mob-unified-hdr .ib > i::before,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) > i::before,
html.capacitor .mob-hdr-right .ti::before,
html.capacitor .mob-nav-btn .ti::before {
  display:block !important;
  width:1em !important;
  height:1em !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  position:absolute !important;
  top:50% !important;
  left:50% !important;
  transform:translate(-50%,-50%) !important;
}
html.capacitor .mob-hdr-right,
html.capacitor .mob-hdr-right > div {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-unified-hdr .ib,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn) {
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  -webkit-tap-highlight-color:transparent !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn:hover,
html.capacitor .mob-unified-hdr .wb2:hover,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):hover,
html.capacitor .mob-unified-hdr .mob-nav-btn:active,
html.capacitor .mob-unified-hdr .wb2:active,
html.capacitor .mob-unified-hdr button:not(.bmi):not(.mam-item):not(.mob-media-btn):active {
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .wb2,
html.capacitor .mob-hdr-right .wb2 {
  color:rgba(255,255,255,.92) !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn:disabled {
  opacity:.28 !important;
  background:transparent !important;
  box-shadow:none !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn > i,
html.capacitor .mob-unified-hdr .wb2 > i,
html.capacitor .mob-hdr-right .ti,
html.capacitor .mob-nav-btn .ti {
  color:currentColor !important;
  font-size:18px !important;
  line-height:1 !important;
  opacity:1 !important;
}
html.capacitor .mob-unified-hdr .wb2 > i,
html.capacitor .mob-hdr-right .ti {
  font-size:19px !important;
}
html.capacitor .mob-unified-hdr {
  align-items:center !important;
}
html.capacitor .mob-board-name {
  left:50% !important;
  transform:translateX(-50%) !important;
  text-align:center !important;
}
html.capacitor .mob-input-row .mob-plus-btn,
html.capacitor .mob-input-row .send-btn,
html.capacitor .mob-input-row .mob-send-btn {
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  flex:0 0 42px !important;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  color:var(--board-color, var(--acc, #F97316)) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 !important;
  -webkit-tap-highlight-color:transparent !important;
}
html.capacitor .mob-input-row .mob-plus-btn i,
html.capacitor .mob-input-row .send-btn i,
html.capacitor .mob-input-row .mob-send-btn i {
  display:block !important;
  width:1em !important;
  height:1em !important;
  line-height:1 !important;
  font-size:24px !important;
  color:currentColor !important;
  transform:none !important;
}
html.capacitor .mob-input-row .mob-plus-btn i{
  position:relative !important;
  left:5px !important;
}
html.capacitor .mob-input-row .send-btn i,
html.capacitor .mob-input-row .mob-send-btn i {
  font-size:23px !important;
  position:relative !important;
  left:-5px !important;
}
html.capacitor .mob-input-row .mob-plus-btn:active,
html.capacitor .mob-input-row .send-btn:active,
html.capacitor .mob-input-row .mob-send-btn:active {
  background:transparent !important;
  box-shadow:none !important;
  transform:scale(.92) !important;
  opacity:.72 !important;
}
html.capacitor .mob-unified-hdr {
  position:relative !important;
}
html.capacitor .mob-unified-hdr .mob-board-name {
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  grid-column:auto !important;
  justify-self:auto !important;
  align-self:auto !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:calc(100% - 160px) !important;
  z-index:3 !important;
  pointer-events:auto !important;
}
html.capacitor .mob-unified-hdr .mob-nav-btn,
html.capacitor .mob-unified-hdr .mob-hdr-right {
  position:relative !important;
  z-index:4 !important;
}
html.capacitor .tb-chips-scroll .chip.chip-h[style*="--board-color"] {
  opacity:.42 !important;
  filter:saturate(.58) brightness(1.08) !important;
}
html.capacitor .tb-chips-scroll .chip.chip-h[style*="--board-color"].fr {
  opacity:1 !important;
  filter:saturate(1.08) brightness(1) !important;
  box-shadow:0 5px 14px rgba(25,31,45,.08), inset 0 1px 0 rgba(255,255,255,.78) !important;
}
html.capacitor .mob-unified-hdr .bmenu,
body.capacitor .mob-unified-hdr .bmenu,
html.capacitor .mob-hdr-right .bmenu,
body.capacitor .mob-hdr-right .bmenu {
  min-width:214px !important;
  max-width:calc(100vw - 28px) !important;
  overflow:hidden !important;
  background:rgba(255,255,255,.98) !important;
  color:#242832 !important;
  border-radius:18px !important;
  border:1px solid rgba(31,36,48,.12) !important;
  box-shadow:0 22px 60px rgba(15,23,42,.18),0 4px 12px rgba(15,23,42,.08) !important;
}
html.capacitor .mob-unified-hdr .bmenu .msl,
body.capacitor .mob-unified-hdr .bmenu .msl,
html.capacitor .mob-hdr-right .bmenu .msl,
body.capacitor .mob-hdr-right .bmenu .msl {
  display:flex !important;
  align-items:center !important;
  min-height:38px !important;
  height:38px !important;
  padding:0 16px !important;
  margin:0 !important;
  box-sizing:border-box !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  color:rgba(31,36,48,.62) !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
}
html.capacitor .mob-unified-hdr .bmenu .mi,
body.capacitor .mob-unified-hdr .bmenu .mi,
html.capacitor .mob-hdr-right .bmenu .mi,
body.capacitor .mob-hdr-right .bmenu .mi {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  height:46px !important;
  padding:0 16px !important;
  margin:0 !important;
  box-sizing:border-box !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  color:#242832 !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  opacity:1 !important;
  visibility:visible !important;
}
html.capacitor .mob-unified-hdr .bmenu .mi i,
body.capacitor .mob-unified-hdr .bmenu .mi i,
html.capacitor .mob-hdr-right .bmenu .mi i,
body.capacitor .mob-hdr-right .bmenu .mi i,
html.capacitor .mob-unified-hdr .bmenu .mi > .ti,
body.capacitor .mob-unified-hdr .bmenu .mi > .ti,
html.capacitor .mob-hdr-right .bmenu .mi > .ti,
body.capacitor .mob-hdr-right .bmenu .mi > .ti {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 20px !important;
  width:20px !important;
  min-width:20px !important;
  max-width:20px !important;
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  font-size:18px !important;
  line-height:1 !important;
  color:rgba(31,36,48,.72) !important;
  text-align:center !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
}
html.capacitor .mob-unified-hdr .bmenu .mi i::before,
body.capacitor .mob-unified-hdr .bmenu .mi i::before,
html.capacitor .mob-hdr-right .bmenu .mi i::before,
body.capacitor .mob-hdr-right .bmenu .mi i::before {
  display:block !important;
  width:1em !important;
  height:1em !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
}
html.capacitor .mob-unified-hdr .bmenu .mi.dng,
body.capacitor .mob-unified-hdr .bmenu .mi.dng,
html.capacitor .mob-hdr-right .bmenu .mi.dng,
body.capacitor .mob-hdr-right .bmenu .mi.dng {
  color:var(--danger,#ef4444) !important;
}
html.capacitor .mob-unified-hdr .bmenu .mi.dng i,
body.capacitor .mob-unified-hdr .bmenu .mi.dng i,
html.capacitor .mob-hdr-right .bmenu .mi.dng i,
body.capacitor .mob-hdr-right .bmenu .mi.dng i {
  color:var(--danger,#ef4444) !important;
}
html.capacitor .mob-unified-hdr .bmenu .mdv,
body.capacitor .mob-unified-hdr .bmenu .mdv,
html.capacitor .mob-hdr-right .bmenu .mdv,
body.capacitor .mob-hdr-right .bmenu .mdv {
  height:1px !important;
  margin:0 !important;
  background:rgba(31,36,48,.10) !important;
}
html.capacitor .bmenu,
body.capacitor .bmenu {
  min-width:216px !important;
  max-width:calc(100vw - 24px) !important;
  background:rgba(255,255,255,.98) !important;
  color:#242832 !important;
  overflow:hidden !important;
}
html.capacitor .bmenu .msl,
body.capacitor .bmenu .msl {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  height:34px !important;
  min-height:34px !important;
  padding:0 16px !important;
  color:rgba(31,36,48,.58) !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  text-align:left !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
}
html.capacitor .bmenu .mi,
body.capacitor .bmenu .mi {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  width:100% !important;
  padding:0 16px !important;
  margin:0 !important;
  box-sizing:border-box !important;
  color:#242832 !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  text-align:left !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
  overflow:hidden !important;
}
html.capacitor .bmenu .mi > i,
body.capacitor .bmenu .mi > i,
html.capacitor .bmenu .mi > .ti,
body.capacitor .bmenu .mi > .ti {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 20px !important;
  width:20px !important;
  min-width:20px !important;
  height:20px !important;
  min-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  color:rgba(31,36,48,.72) !important;
  font-size:18px !important;
  line-height:1 !important;
  opacity:1 !important;
  visibility:visible !important;
  position:static !important;
  transform:none !important;
}
html.capacitor .bmenu .mi-label,
body.capacitor .bmenu .mi-label {
  display:inline-block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  color:inherit !important;
  font:inherit !important;
  line-height:1.2 !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  opacity:1 !important;
  visibility:visible !important;
  position:static !important;
  transform:none !important;
}
html.capacitor .bmenu .mi.dng,
body.capacitor .bmenu .mi.dng,
html.capacitor .bmenu .mi.dng .mi-label,
body.capacitor .bmenu .mi.dng .mi-label,
html.capacitor .bmenu .mi.dng > i,
body.capacitor .bmenu .mi.dng > i {
  color:var(--danger,#ef4444) !important;
}
html.capacitor .bmenu,
body.capacitor .bmenu {
  min-width:216px !important;
  max-width:calc(100vw - 24px) !important;
}
html.capacitor .bmenu .msl,
body.capacitor .bmenu .msl {
  height:32px !important;
  min-height:32px !important;
  padding:0 14px !important;
  font-size:10px !important;
  line-height:1.2 !important;
  text-align:left !important;
  justify-content:flex-start !important;
}
html.capacitor .bmenu .mi,
body.capacitor .bmenu .mi {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  padding:0 14px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  text-align:left !important;
  position:relative !important;
}
html.capacitor .bmenu .mi > i,
body.capacitor .bmenu .mi > i,
html.capacitor .bmenu .mi > i.ti,
body.capacitor .bmenu .mi > i.ti {
  order:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 18px !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  font-size:16px !important;
  line-height:1 !important;
  text-align:center !important;
  pointer-events:none !important;
}
html.capacitor .bmenu .mi > i::before,
body.capacitor .bmenu .mi > i::before {
  display:block !important;
  width:1em !important;
  height:1em !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  transform:none !important;
  text-align:center !important;
}
html.capacitor .bmenu .mi > .mi-label,
body.capacitor .bmenu .mi > .mi-label {
  order:1 !important;
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:500 !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
html.capacitor .bmenu .mi.dng,
body.capacitor .bmenu .mi.dng,
html.capacitor .bmenu .mi.dng > i,
body.capacitor .bmenu .mi.dng > i,
html.capacitor .bmenu .mi.dng > .mi-label,
body.capacitor .bmenu .mi.dng > .mi-label {
  color:var(--danger,#ef4444) !important;
}
html.capacitor #app,
body.capacitor #app {
  padding-top:max(24px, env(safe-area-inset-top)) !important;
  box-sizing:border-box !important;
}
html.capacitor #tb.tb {
  justify-content: flex-start !important;
  align-items: center !important;
  overflow: visible !important;
}
html.capacitor #tb .tb-active-chip-wrap-v274 {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
html.capacitor #tb .mob-active-board-chip-v274,
html.capacitor #tb .chip.mob-active-board-chip-v274,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274 {
  min-width: 0 !important;
  max-width: min(220px, calc(100vw - 72px)) !important;
  height: 28px !important;
  padding: 3px 10px 3px 12px !important;
  border-radius: 15px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  opacity: 1 !important;
  transform: none !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .10) !important;
}
html.capacitor #tb .mob-active-chip-label-v274 {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  line-height: 1 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}
html.capacitor #tb .mob-active-chip-caret-v274 {
  flex: 0 0 auto !important;
  font-size: 13px !important;
  line-height: 1 !important;
  opacity: .95 !important;
}
html.capacitor .mob-board-dropdown-v274 {
  position: fixed !important;
  z-index: 99999 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(139,92,246,.22) !important;
  border-radius: 18px !important;
  padding: 8px !important;
  box-shadow: 0 18px 40px rgba(17,24,39,.18) !important;
  backdrop-filter: blur(12px) !important;
}
html.capacitor .mob-board-dropdown-item-v274 {
  width: 100% !important;
  min-height: 42px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border: none !important;
  border-radius: 13px !important;
  background: transparent !important;
  color: var(--txt) !important;
  font-family: inherit !important;
  font-size: calc(var(--memo-size, 11px) + 1.5px) !important;
  font-weight: 650 !important;
  text-align: left !important;
}
html.capacitor .mob-board-dropdown-item-v274.active {
  background: rgba(139,92,246,.10) !important;
}
html.capacitor .mob-board-dropdown-item-v274:active {
  background: rgba(139,92,246,.16) !important;
}
html.capacitor .mob-board-dropdown-dot-v274 {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  flex: 0 0 auto !important;
  background: var(--board-color, #F97316) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,.85), 0 1px 5px rgba(0,0,0,.18) !important;
}
html.capacitor .mob-board-dropdown-name-v274 {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}
html.capacitor .mob-board-dropdown-item-v274 i {
  flex: 0 0 auto !important;
  font-size: 16px !important;
  color: #8B5CF6 !important;
}
html.capacitor #tb.tb {
  padding-left: 0 !important;
}
html.capacitor #tb .tb-active-chip-wrap-v274 {
  margin-left: 0 !important;
}
html.capacitor #tb.tb {
  position:relative !important;
  height:52px !important;
  min-height:52px !important;
  padding:0 12px !important;
  margin:0 !important;
  background:#fff !important;
  border:0 !important;
  border-bottom:1px solid rgba(249,115,22,.28) !important;
  box-shadow:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  overflow:visible !important;
}
html.capacitor #tb .mob-active-board-chip-v274,
html.capacitor #tb .chip.mob-active-board-chip-v274,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274 {
  height:24px !important;
  min-height:24px !important;
  width:118px !important;
  max-width:118px !important;
  padding:2px 7px 2px 8px !important;
  border-radius:999px !important;
  gap:4px !important;
  align-self:center !important;
  box-shadow:0 4px 11px rgba(15,23,42,.10) !important;
}
html.capacitor #tb .mob-active-chip-caret-v274 {
  font-size:11px !important;
  line-height:1 !important;
}
html.capacitor #tb .mobile-header-logo-v303w3 {
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  height:40px !important;
  width:86px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:auto !important;
  z-index:1 !important;
  overflow:hidden !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
html.capacitor #tb .mobile-header-logo-v303w3 img {
  display:block !important;
  height:32px !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain !important;
}
html.capacitor #tb .mobile-tb-menu-btn-v303w3,
html.capacitor #tb .tb-settings-btn.mobile-tb-menu-btn-v303w3 {
  position:relative !important;
  z-index:2 !important;
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  margin:0 0 0 auto !important;
  align-self:center !important;
  border-radius:999px !important;
}
html.capacitor #app > .wrap {
  padding-bottom:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
}
html.capacitor #tb.tb {
  flex:0 0 52px !important;
  height:52px !important;
  min-height:52px !important;
}
html.capacitor #app > .wrap > .desk,
html.capacitor .desk {
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
html.capacitor .mob-textarea {
  border-radius:16px !important;
  min-height:54px !important;
  padding:13px 17px !important;
}
html.capacitor .mob-input-area .mob-input-row textarea.mob-textarea,
html.capacitor .mob-input-row textarea.mob-textarea {
  min-height:36px !important;
  max-height:200px !important;
  border-radius:5px !important;
  padding:8px 14px !important;
}
html.capacitor #ad-bar,
body.capacitor #ad-bar {
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  /* W3.90.31 top was about: nav-safe + 6px + 42px = 100px.
       New: 82px high with bottom around nav-safe - 24px, so the top stays near 110px
       and the lower edge clearly extends toward/into the system navigation area. */
    bottom:calc(var(--nm-apk-nav-safe, max(52px, env(safe-area-inset-bottom))) - 24px) !important;
  height: 68px !important;
  min-height: 68px !important;
  max-height: 68px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  z-index:45 !important;
  pointer-events:none !important;
  color:#9aa3af !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:.04em !important;
}
html.capacitor #ad-bar span,
body.capacitor #ad-bar span {
  display:block !important;
  color:#9aa3af !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1 !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"],
html.capacitor .mobbrd[style*="--board-color"] .mob-unified-hdr {
  height:36px !important;
  min-height:36px !important;
  padding:0 8px !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mobbdy {
  margin:0 !important;
  padding:0 0 10px 8px !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mob-input-area {
  margin:0 !important;
  padding:10px 0 12px 0 !important;
}
html.capacitor #app .mobbdy {
  background:#f5f6f7 !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67,
html.capacitor #tb .chip.mob-active-board-chip-v274.nm-header-board-chip-v303w67,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v303w67,
html.capacitor #tb .chip.chip-h.mob-active-board-chip-v274.nm-header-board-chip-v303w67 {
  box-sizing:border-box !important;
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  height:30px !important;
  min-height:30px !important;
  max-height:30px !important;
  padding:0 !important;
  gap:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  overflow:hidden !important;
}
html.capacitor #tb .nm-header-note-stack-icon-v303w67 {
  width:16px !important;
  height:16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  opacity:.96 !important;
  flex:0 0 16px !important;
  margin:0 !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.18)) !important;
}
html.capacitor #tb .nm-header-note-stack-icon-v303w67 svg {
  width:16px !important;
  height:16px !important;
  display:block !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.9 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
html.capacitor #tb .mob-active-board-chip-v274.nm-header-board-chip-v303w67 .nm-header-chip-caret-v303w67 {
  position:absolute !important;
  right:3px !important;
  bottom:3px !important;
  width:7px !important;
  min-width:7px !important;
  height:7px !important;
  font-size:7px !important;
  line-height:7px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:rgba(255,255,255,.88) !important;
  text-shadow:none !important;
  opacity:.95 !important;
  margin:0 !important;
}
html.capacitor .mob-plus-btn {
  width:19px !important;
  height:19px !important;
}
html.capacitor .send-btn,
html.capacitor .mob-send-btn {
  width:19px !important;
  height:19px !important;
  margin-left:-2px !important;
}
/* W3.302b: 입력창-광고판 사이 불필요한 여백 방지 안전장치 */
html.capacitor .mobbrd {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
html.capacitor .mobbdy {
  flex: 1 !important;
  overflow-y: auto !important;
  min-height: 0 !important;
}
html.capacitor .mob-input-area {
  flex-shrink: 0 !important;
}


/* W3.303: 태블릿 최종 다듬기 */
/* 1) 데스크톱용 헤더 밑줄(주황선) 제거 */
html.capacitor #tb.tb {
  border-bottom: none !important;
  box-shadow: none !important;
}
/* 2) 보드 색상을 옅은 파스텔이 아니라 진하고 또렷하게 */
html.capacitor .mob-unified-hdr[style*="--board-color"] {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--board-color) 92%, #fff 8%),
    color-mix(in srgb, var(--board-color) 78%, #111827 22%)) !important;
  border-bottom: none !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"] .mob-board-name {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.15) !important;
}
html.capacitor .mob-unified-hdr[style*="--board-color"] .wb2,
html.capacitor .mob-unified-hdr[style*="--board-color"] button:not(.mob-nav-btn),
html.capacitor .mob-unified-hdr[style*="--board-color"] .mob-nav-btn {
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.32) !important;
}
html.capacitor .mobbrd[style*="--board-color"] {
  background: #fff !important;
  border: 1px solid color-mix(in srgb, var(--board-color) 32%, rgba(31,36,48,.14)) !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mobbdy {
  background: #fff !important;
}
html.capacitor .mobbrd[style*="--board-color"] .mob-input-area {
  background: color-mix(in srgb, var(--board-color) 6%, #ffffff) !important;
  border-bottom-left-radius: 8px !important;
  border-bottom-right-radius: 8px !important;
}
/* 3) 입력창이 광고판 뒤로 숨는 문제 — 명시적 height 대신 flex만으로 정확히 남는 공간만 채우게 함 */
html.capacitor .mobbrd {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
html.capacitor .mobbdy {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}
html.capacitor .mob-input-area {
  flex: 0 0 auto !important;
}
html.capacitor #mba {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
}
html.capacitor .mobv {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
}

}

/* W3.306: 태블릿 메모판 높이 최종 강제 고정 — 지금까지 쌓인 규칙들이 서로 충돌하고 있어서,
   가장 마지막에 명확한 값으로 못박아 확실히 이기게 한다. */
@media (min-width: 601px) {
  html.capacitor #app {
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  html.capacitor .status-bar {
    flex: 0 0 auto !important;
  }
  html.capacitor .wrap {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
  }
  html.capacitor #tb.tb {
    flex: 0 0 auto !important;
  }
  html.capacitor .mobv {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  html.capacitor #mba {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  html.capacitor .mobbrd {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
  }
  html.capacitor .mob-unified-hdr {
    flex: 0 0 auto !important;
  }
  html.capacitor .mobbdy {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  html.capacitor .mob-input-area {
    flex: 0 0 auto !important;
  }
  html.capacitor #ad-bar {
    flex: 0 0 60px !important;
  }
}

/* W3.307: 단일 메모장 여백 (좌우 5px, 하단 103px) */
@media (min-width: 601px) {
  html.capacitor .mobv {
    margin-bottom: 103px !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
  }
}

/* W3.312: 바깥쪽(덜 둥근) 테두리까지 카드 색이 꽉 차도록 — mobv/mba와 mobbrd 사이 여백/이중 테두리 제거 */
@media (min-width: 601px) {
  html.capacitor .mobv,
  html.capacitor #mba {
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
  }
  html.capacitor .mobbrd {
    border-radius: 8px !important;
    width: 100% !important;
    height: 100% !important;
  }
}

/* W3.313: 헤더가 카드 모서리에 완전히 밀착되도록 (이중 모서리 방지) */
@media (min-width: 601px) {
  html.capacitor .mobbrd {
    padding: 0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
  }
  html.capacitor .mob-unified-hdr {
    margin: 0 !important;
    border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
    width: 100% !important;
  }
  html.capacitor .mob-input-area {
    border-bottom-left-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    margin: 0 !important;
  }
  html.capacitor .mobbdy {
    margin: 0 !important;
  }
}

/* W3.314: (되돌림 — 아래 W3.315에서 반대 방향으로 다시 처리) */

/* W3.331: 태블릿 — 색상 유무와 상관없이(기본 메모장 포함) 카드 전체를 확실하게 클리핑.
   지금까지는 .mobbrd[style*="--board-color"] 버전만 고쳤는데, 색상 지정 안 한 기본 메모장은
   전혀 다른(색상 조건 없는) 규칙을 타고 있어서 안 먹혔을 수 있다. 여기서 색상 유무 상관없이
   전부 마지막에 한번 더 확실히 못박는다. */
@media (min-width: 601px) {
  html.capacitor .mobbrd {
    border-radius: 8px !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }
  html.capacitor .mob-unified-hdr {
    border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
  }
  html.capacitor .mobbdy {
    border-radius: 0 !important;
  }
  html.capacitor .mob-input-area {
    border-bottom-left-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
  }
}

/* W3.353: 앱(폰, 좁은 화면)에서만 입력창 placeholder 위치 2px 위로 */
@media (max-width: 600px) {
  html.capacitor .mob-textarea::placeholder,
  .mob-textarea::placeholder {
    transform: translateY(-2px) !important;
  }
}


/* W3.91.251: 캘린더 테두리/여백 최종 정리 — 맨 끝에 둬서 확실히 이기게 함 */
@media (min-width: 601px) {
  html.capacitor .nm-cal-mob-board,
  html.capacitor .nm-cal-mob-board[style*="--board-color"] {
    border-color: #fff !important;
    border-top-color: #fff !important;
    border-right-color: #fff !important;
    border-bottom-color: #fff !important;
    border-left-color: #fff !important;
    border-left: 1px solid #fff !important;
  }
  html.capacitor body.nm-cal-view-open .mobv {
    margin-bottom: 115px !important;
    margin-left: -5px !important;
    margin-right: 0 !important;
    width: calc(100% + 5px) !important;
  }
  html.capacitor body.nm-cal-view-open #mba,
  html.capacitor body.nm-cal-view-open .wrap,
  html.capacitor body.nm-cal-view-open #app,
  html.capacitor body.nm-cal-view-open .mobv,
  html.capacitor body.nm-cal-view-open .nm-cal-mob-board {
    background: #fff !important;
  }
  html.capacitor body.nm-cal-view-open #mba {
    padding: 0 !important;
  }
  html.capacitor body.nm-cal-view-open .mobv {
    padding: 0 !important;
  }
}
@media (max-width: 600px) {
  html.capacitor .nm-cal-mob-board,
  html.capacitor .nm-cal-mob-board[style*="--board-color"] {
    border-bottom: none !important;
  }
  html.capacitor body.nm-cal-view-open .mobv {
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  html.capacitor .nm-cal-mob-body {
    padding-bottom: 0 !important;
  }
}

/* W3.91.258: 마감일 달력 팝업이 카드 밖으로 안 잘리게, 수정 중엔 카드의 overflow:hidden을 푼다.
   맨 끝에 둬서 확실히 이기게 함. */
.row.ed { overflow: visible !important; }

/* W3.443-3 - 추가메모 삭제 아이콘(.thread-acts 안의 휴지통)은 원래 "마우스 hover"용 UI라
   데스크톱 전용이다. 앱/태블릿/모바일웹에서 추가메모 삭제는 롱프레스 메뉴(showThreadLongMenu)로만 한다.
   그런데 이 파일 위쪽 331번 줄 근처에 예전에 "모바일에서도 항상 보이게" 만든 규칙이 남아있고,
   그걸 수정모드에서 숨기는 main.css 규칙도 :has()가 콤마로 같이 묶여 있어서 앱 웹뷰에서
   통째로 무시되는 바람에, 편집(inp.focus() → :focus-within) 중에 이 휴지통 아이콘이 다시
   나타나서 탭하면 삭제 확인창이 뜨는 문제가 있었다.
   → 근본적으로: 앱/태블릿(html.capacitor, 화면폭과 무관)과 좁은 화면(모바일 웹, isMob()과 동일 조건)
   에서는 이 아이콘 자체를 상태(수정 중이든 아니든, hover/focus-within 여부와 무관)와 무관하게 항상
   숨긴다. 데스크톱 웹은 그대로 hover로 보이는 기존 동작 유지. 삭제는 앱/태블릿/모바일웹에서는
   오직 롱프레스로만. 파일 맨 끝에 둬서 위쪽의 오래된 opacity:1 규칙보다 확실히 이기게 함. */
html.capacitor .thread-acts,
html.capacitor .thread-entry:hover .thread-acts,
html.capacitor .thread-entry:focus-within .thread-acts {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
@media (max-width: 600px) {
  .thread-acts,
  .thread-entry:hover .thread-acts,
  .thread-entry:focus-within .thread-acts {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* W3.443-7 - main.css 맨 끝에 마감일 박스(.draft-duebox) 둥근 사각형 테두리를 다시 살리는
   블록을 추가했는데, 이 파일(mobile.css)이 main.css보다 나중에 로드되고 위쪽 4947번 줄 근처에
   ".draft-duebox{border:0!important;background:transparent!important;padding:0!important}"가
   그대로 남아있어서(main.css의 옛 버전과 똑같이 복붙된 흔적) 그게 다시 이겨버린다.
   그래서 여기, 이 파일의 진짜 맨 끝에도 똑같은 내용을 한 번 더 넣어서 웹/앱 어디서든 확실히
   이기게 한다. (label 텍스트는 memo.js에서 이미 "Due Date"로 바뀜 — 여긴 상자 모양만.) */
.draft-duebox{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:fit-content !important;
  min-width:0 !important;
  gap:6px !important;
  padding:4px 10px !important;
  border:1px solid var(--bdr2) !important;
  border-radius:8px !important;
  background:var(--bg) !important;
}
.draft-duebox.has-due{
  border-color:#F97316 !important;
  background:rgba(249,115,22,.07) !important;
}
.draft-duebox.kbd-focus{
  border-color:#F97316 !important;
  box-shadow:0 0 0 2px rgba(249,115,22,.22) !important;
  outline:0 !important;
}
.draft-due-label,
.draft-due-input{
  text-align:center !important;
}
@media (max-width:420px){
  .draft-duebox{ padding:3px 8px !important; }
}

/* W3.445-3 - main.css와 동일. 이 파일이 main.css보다 나중 로드되고 위쪽(4960/4964번 줄 근처)에
   .draft-due-input font-weight:600/800!important가 그대로 남아있어서, main.css에 아무리 덮어써도
   결국 여기서 다시 이겨버린다 — 그래서 여기, 이 파일의 진짜 맨 끝에도 한 번 더 넣는다. */
.draft-due-label,
.draft-duebox .draft-due-input,
.draft-duebox.has-due .draft-due-input{
  font-weight: var(--memo-weight) !important;
}
.draft-duebox{
  align-items:center !important;
}
.draft-due-label,
.draft-due-input{
  line-height:1 !important;
  vertical-align:middle !important;
}
.draft-due-clear{
  align-self:center !important;
}

/* W3.449 - main.css와 동일. .draft-due-input의 고정 width:112px 때문에 마감일이 없을 때도
   입력칸이 항상 112px를 차지해서 "Due Date" 문구 오른쪽에 빈 여백이 크게 보였다 — auto로 해제. */
.draft-duebox .draft-due-input{
  width:auto !important;
  min-width:0 !important;
}
/* W3.447 - main.css와 동일 (문구/테두리 두께 1.5포인트 증가) */
.draft-duebox,
.draft-duebox.has-due,
.draft-duebox.kbd-focus{
  border-width:2.5px !important;
}
.draft-due-label,
.draft-duebox .draft-due-input,
.draft-duebox.has-due .draft-due-input{
  font-weight:calc(var(--memo-weight) + 150) !important;
}

/* W3.448 - 웹에서 Due Date 박스에 마우스 올리면 손가락(포인터) 커서 */
.draft-duebox,
.draft-duebox .draft-due-label,
.draft-duebox .draft-due-input{
  cursor:pointer !important;
}

/* W3.455 - main.css와 동일 (입력칸 폭만큼 라벨 왼쪽에도 대칭 여백) */
.draft-due-label{
  margin-left: calc(var(--due-mirror-w, 1ch) + 6px) !important;
}

/* ═══════════════════════════════════════════════════════════════
   W3.475 TABLET RIGHT-EDGE HOTFIX
   - 태블릿/폴더블 Capacitor 단일 메모장이 우측으로 넘쳐
     우측 테두리가 화면 밖으로 잘리는 문제 방지
   - 원인: .mobv width:100% 와 태블릿 좌우 margin(5px)이 동시에
     적용되어 실제 점유 폭이 부모 폭을 초과할 수 있었음
   - 기능/JS/업로드/공유/동기화/DB 로직 변경 없음
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 601px) {
  html.capacitor #app > .wrap > .mobv,
  html.capacitor.nm-wide-single #app > .wrap > .mobv {
    box-sizing: border-box !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: calc(100% - 10px) !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
    align-self: stretch !important;
  }

  html.capacitor #app > .wrap > .mobv > #mba,
  html.capacitor #app > .wrap > .mobv .mobbrd {
    box-sizing: border-box !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  html.capacitor body.nm-cal-view-open #app > .wrap > .mobv {
    box-sizing: border-box !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* W3.476 SINGLE-MEMO HEADER TOP-RADIUS 6PX - ALL
   기준: W3.475 TABLET RIGHT-EDGE HOTFIX
   범위: 단일 메모장 상단바 공통 (앱/웹/태블릿)
   변경: 좌상단/우상단 기존 8px -> 6px
   제외: 캘린더 화면
   하단 모서리 및 기능/JS/광고/업로드/공유/동기화 변경 없음 */
body:not(.nm-cal-view-open) .mob-unified-hdr {
  border-top-left-radius: 6px !important;
  border-top-right-radius: 6px !important;
}

/* W3.477 SINGLE-MEMO HEADER TOP-RADIUS
   기준: W3.476 single-header-radius-6px-all
   앱/웹 일반 모바일: 좌상단/우상단 4px
   태블릿/폴더블(601px 이상): 기존 6px 유지
   캘린더 제외. 하단 모서리 및 기능 로직 변경 없음. */

/* 앱 + 웹 모바일 */
@media (max-width: 600px) {
  body:not(.nm-cal-view-open) .mob-unified-hdr {
    border-top-left-radius: 4px !important;
    border-top-right-radius: 4px !important;
  }
}

/* 태블릿/폴더블은 6px 유지 */
@media (min-width: 601px) {
  body:not(.nm-cal-view-open) .mob-unified-hdr {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
  }
}

/* W3.478 SINGLE-MEMO HEADER CORNER VISIBLE FIX
   원인:
   - 앱/모바일웹은 .mob-unified-hdr만 줄여도 바깥 .mobbrd가 기존 큰 radius로 clip해서
     눈에 보이는 좌/우 상단 모서리가 그대로일 수 있었음.
   - 데스크톱 웹은 단일 메모장 상단바가 .mob-unified-hdr가 아니라 .win > .wi > .wh 구조를 사용.
   조치:
   - 앱/모바일웹: 헤더 + 실제 외곽 클리핑(.mobbrd)의 상단 모서리만 4px
   - 데스크톱 웹: 외곽(.win/.wi) + 상단바(.wh)의 상단 모서리만 4px
   - 태블릿/폴더블 Capacitor 601px 이상은 6px 유지
   - 하단 모서리는 기존 값 유지
   - 기능/JS/캘린더/광고/업로드/공유/동기화 변경 없음 */

/* 앱 + 모바일 웹 */
@media (max-width: 600px) {
  body:not(.nm-cal-view-open) .mobbrd {
    border-top-left-radius: 4px !important;
    border-top-right-radius: 4px !important;
  }
  body:not(.nm-cal-view-open) .mob-unified-hdr,
  body:not(.nm-cal-view-open) .mob-unified-hdr[style*="--board-color"],
  body:not(.nm-cal-view-open) .mobbrd[style*="--board-color"] .mob-unified-hdr {
    border-top-left-radius: 4px !important;
    border-top-right-radius: 4px !important;
  }
}

/* 데스크톱 웹 단일 메모장 */
body:not(.mobile-mode) .win[style*="--board-color"] {
  border-top-left-radius: 4px !important;
  border-top-right-radius: 4px !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wi {
  border-top-left-radius: 4px !important;
  border-top-right-radius: 4px !important;
}
body:not(.mobile-mode) .win[style*="--board-color"] .wh {
  border-top-left-radius: 4px !important;
  border-top-right-radius: 4px !important;
}

/* 태블릿/폴더블 앱은 6px 유지 */
@media (min-width: 601px) {
  html.capacitor body:not(.nm-cal-view-open) .mobbrd {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
  }
  html.capacitor body:not(.nm-cal-view-open) .mob-unified-hdr {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
  }
}

/* W3.480 SINGLE-MEMO HEADER 6PX + OUTER BORDER TOP 8.5PX
   기준: W3.478 (W3.479의 border:none 제거본을 사용하지 않음)
   목적:
   - 단일 메모장 상단바 좌/우 상단 radius: 6px
   - 그 바깥 외곽 테두리의 좌/우 상단 radius: 8.5px
     (= 상단바보다 2.5px 더 크게)
   - 외곽 테두리는 전체 원상복구/유지
   - 앱/웹/태블릿 공통 적용
   - 하단 모서리, 캘린더, 기능/JS/광고/업로드/공유/동기화 변경 없음 */

/* 앱 + 모바일 웹: 실제 바깥 외곽(.mobbrd)은 8.5px,
   안쪽 상단바(.mob-unified-hdr)는 6px */
@media (max-width: 600px) {
  body:not(.nm-cal-view-open) .mobbrd {
    border-top-left-radius: 8.5px !important;
    border-top-right-radius: 8.5px !important;
  }

  body:not(.nm-cal-view-open) .mob-unified-hdr,
  body:not(.nm-cal-view-open) .mob-unified-hdr[style*="--board-color"],
  body:not(.nm-cal-view-open) .mobbrd[style*="--board-color"] .mob-unified-hdr {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
  }
}

/* 태블릿/폴더블 앱: 바깥 8.5px / 상단바 6px */
@media (min-width: 601px) {
  html.capacitor body:not(.nm-cal-view-open) .mobbrd {
    border-top-left-radius: 8.5px !important;
    border-top-right-radius: 8.5px !important;
  }

  html.capacitor body:not(.nm-cal-view-open) .mob-unified-hdr {
    border-top-left-radius: 6px !important;
    border-top-right-radius: 6px !important;
  }
}

/* 데스크톱 웹: 외곽 컨테이너 8.5px / 실제 상단바 6px */
body:not(.mobile-mode) .win[style*="--board-color"],
body:not(.mobile-mode) .win[style*="--board-color"] .wi {
  border-top-left-radius: 8.5px !important;
  border-top-right-radius: 8.5px !important;
}

body:not(.mobile-mode) .win[style*="--board-color"] .wh {
  border-top-left-radius: 6px !important;
  border-top-right-radius: 6px !important;
}

/* W3.498 WEB VIDEO VIEWER OVERLAY FIX
   - 웹 동영상 뷰어의 전면 투명 클릭 레이어가 video/controls 입력을 가로채지 않도록 수정
   - 전체 overlay는 비활성(pointer-events:none)
   - 중앙 실제 재생 버튼만 클릭 가능(pointer-events:auto)
   - 사진 뷰어/좌우 이동/썸네일/저장/삭제/레이아웃은 변경하지 않음 */
#lb-play-overlay {
  pointer-events: none !important;
  cursor: default !important;
}
#lb-play-overlay button,
#lb-play-overlay .lb-play-btn,
#lb-play-overlay [data-lb-play],
#lb-play-overlay .play-btn,
/* W3.519: 실제 HTML은 <div id="lb-play-overlay"><i class="ti ti-player-play-filled">뿐이라
   위 4개 셀렉터(button/.lb-play-btn/[data-lb-play]/.play-btn) 중 어느 것에도 안 걸려서
   재생 아이콘을 정확히 눌러도 클릭 자체가 씹히고 있었다(pointer-events:none이 그대로 적용됨).
   실제 아이콘(i)에 pointer-events:auto를 걸어준다 — 이 안(아이콘)에서 시작된 클릭은
   버블링으로 부모(오버레이 div)의 onclick까지 정상적으로 도달한다. */
#lb-play-overlay i {
  pointer-events: auto !important;
  cursor: pointer !important;
}
#lb video,
#lb video[controls],
.lb video,
.lightbox video {
  pointer-events: auto !important;
  cursor: default !important;
}


/* R2G: 모바일/태블릿 메모장 목록 삭제 아이콘. 기존 항목 높이 및 순서 변경 유지. */
.mob-board-dropdown-v274 .mob-board-dropdown-delete-r2g {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  flex:0 0 30px !important; width:30px !important; height:30px !important;
  margin-left:5px !important; border-radius:8px !important;
  color:#8b909a !important; cursor:pointer !important; touch-action:manipulation !important;
}
.mob-board-dropdown-v274 .mob-board-dropdown-delete-r2g i {
  color:inherit !important; font-size:16px !important; pointer-events:none !important;
}
.mob-board-dropdown-v274 .mob-board-dropdown-delete-r2g:active { background:rgba(239,68,68,.10) !important; color:#dc4444 !important; }
