/* 기존 기능 화면(진단·플레이스·AEO·알림)을 새 테마로 입히는 브리지.
   기존 스크립트가 만드는 마크업(클래스)은 그대로 두고, 다크 테마 변수와 주요 부품 스타일만 덮어쓴다.
   기존 화면을 새 컴포넌트로 다시 만들면 해당 부분은 여기서 지운다. */

/* 1. 다크 테마 변수 → 새 테마 */
html body.app-bridge.app-bridge {
  --font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", sans-serif;
  --bg: var(--dp-bg);
  --bg-card: #ffffff;
  --bg-elevated: #f8fafd;
  --border: rgba(15, 23, 42, .1);
  --text: #0b1220;
  --text-secondary: #4a5568;
  --text-muted: #8a94a6;
  --accent: #126bff;
  --accent-hover: #0a4fd1;
  --accent-light: rgba(18, 107, 255, .1);
  --success-bg: #e3f6eb;
  --error-bg: #fdecec;
  --shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 4px 12px rgba(15, 23, 42, .06);
  --shadow-md: 0 2px 4px rgba(15, 23, 42, .06), 0 12px 32px rgba(15, 23, 42, .10);
  --dv-blue: #126bff;
  --dv-blue-strong: #0a4fd1;
  --dv-blue-soft: #eaf2ff;
  --dv-surface: #ffffff;
  --dv-surface-raised: #f8fafd;
  --dv-surface-inset: #f4f6fb;
  --dv-border: rgba(15, 23, 42, .08);
  --dv-border-strong: rgba(15, 23, 42, .14);
  --dv-text: #0b1220;
  --dv-copy: #4a5568;
  --dv-muted: #8a94a6;
  --dv-guide: #4a5568;
  --dv-guide-active: #0b1220;
  --dv-guide-muted: #8a94a6;
  --dp-accent: #126bff;
  --dp-accent-hover: #0a4fd1;
  --dp-accent-soft: #eaf2ff;
  --dp-accent-glow: rgba(18, 107, 255, .18);
  color: var(--dp-ink);
  background: var(--dp-bg);
  font-family: var(--font);
}
.app-bridge .aeo-report--editorial, .app-bridge .aeo-report {
  --aeo-surface: #ffffff;
  --aeo-surface-raised: #f8fafd;
  --aeo-surface-inset: #f4f6fb;
  --aeo-line: rgba(15, 23, 42, .08);
  --aeo-copy: #0b1220;
  --aeo-muted: #8a94a6;
  --aeo-tone: #8a94a6;
  --aeo-good: #12a150;
  --aeo-fair: #e08600;
  --aeo-poor: #e5484d;
  --aeo-info: #126bff;
}

/* 2. 기존 머리말·배경 정리(새 페이지 제목을 쓴다) */
.app-bridge .dp-app-head,
.app-bridge .bw-head,
.app-bridge .notify-head { display: none !important; }
.app-bridge .analysis-v2-main,
.app-bridge .daino-view-main,
.app-bridge .landing-main--page,
.app-bridge .notify-main { padding: 0 !important; margin: 0 !important; min-height: 0 !important; background: none !important; }
.app-bridge .analysis-v2-shell,
.app-bridge .dp-app-shell,
.app-bridge .bw-shell,
.app-bridge .notify-page { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; background: none !important; gap: 16px; }
.app-bridge .app-tool { color: var(--dp-ink); }
.app-bridge .app-tool h1, .app-bridge .app-tool h2, .app-bridge .app-tool h3, .app-bridge .app-tool h4 { color: var(--dp-ink); letter-spacing: -.03em; }

/* 3. 카드 */
.app-bridge .analysis-v2-card,
.app-bridge .dv-task-card,
.app-bridge .dv-shared-target,
.app-bridge .bw-form,
.app-bridge .bw-section,
.app-bridge .bw-progress,
.app-bridge .notify-common,
.app-bridge .notify-block,
.app-bridge .notify-channel,
.app-bridge .notify-preview,
.app-bridge .aeo-sheet,
.app-bridge .dp-place-results > *:not(script) {
  color: var(--dp-ink) !important;
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 20px !important;
  box-shadow: var(--dp-shadow-1) !important;
}
.app-bridge .analysis-v2-card, .app-bridge .dv-task-card, .app-bridge .dv-shared-target, .app-bridge .bw-form,
.app-bridge .notify-common, .app-bridge .notify-block, .app-bridge .aeo-sheet { padding: 22px !important; }
.app-bridge .analysis-v2-card::before, .app-bridge .dv-task-card::before, .app-bridge .dv-shared-target::before { display: none !important; }
.app-bridge .dv-task-card__head, .app-bridge .dv-shared-target__head { border-bottom: 1px solid var(--dp-line) !important; padding-bottom: 14px !important; margin-bottom: 16px !important; }
.app-bridge .dv-task-card__title, .app-bridge .dv-shared-target__title, .app-bridge .notify-common__title, .app-bridge .notify-block__head h2 { font-size: 18px !important; font-weight: 800 !important; color: var(--dp-ink) !important; }

/* 4. 글자색 */
.app-bridge .analysis-v2-label, .app-bridge .bw-field label, .app-bridge .notify-common__field > span:first-child { font-size: 14px !important; font-weight: 700 !important; color: var(--dp-ink) !important; }
.app-bridge .analysis-v2-hint, .app-bridge .analysis-v2-run-meta, .app-bridge .dv-guide-meta, .app-bridge .bw-field small, .app-bridge .bw-hint,
.app-bridge .notify-block__desc, .app-bridge .notify-common__hint, .app-bridge .post-analysis-radio-hint, .app-bridge .notify-inline-msg,
.app-bridge .dv-post-picker__status, .app-bridge .notify-tracks__limit { color: var(--dp-ink-2) !important; }
.app-bridge .dv-shared-target__selection-label, .app-bridge .aeo-sheet__eyebrow { color: var(--dp-muted) !important; }
.app-bridge .dv-post-source__selected { color: var(--dp-ink) !important; }

/* 5. 입력창 */
.app-bridge .app-tool input[type="text"],
.app-bridge .app-tool input[type="url"],
.app-bridge .app-tool input[type="time"],
.app-bridge .app-tool input[type="search"],
.app-bridge .app-tool textarea,
.app-bridge .app-tool select,
.app-bridge .analysis-v2-input,
.app-bridge .post-kw-field {
  color: var(--dp-ink) !important;
  background: var(--dp-surface-2) !important;
  border: 1px solid rgba(15, 23, 42, .12) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-family: var(--font) !important;
  font-size: 16px !important;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
}
.app-bridge .app-tool input[type="text"], .app-bridge .app-tool input[type="url"], .app-bridge .analysis-v2-input { min-height: 48px; padding: 0 14px !important; }
.app-bridge .app-tool textarea { min-height: 96px; padding: 12px 14px !important; }
.app-bridge .post-kw-field { padding: 6px 8px !important; }
.app-bridge .app-tool .post-kw-field input, .app-bridge .app-tool .post-kw-field input:focus { min-height: 36px !important; padding: 0 6px !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.app-bridge .app-tool input:focus, .app-bridge .app-tool textarea:focus, .app-bridge .post-kw-field:focus-within {
  outline: 0 !important; background: #fff !important; border-color: rgba(18, 107, 255, .55) !important; box-shadow: 0 0 0 4px rgba(18, 107, 255, .12) !important;
}
.app-bridge .app-tool input::placeholder, .app-bridge .app-tool textarea::placeholder { color: #a7b0c0 !important; }
.app-bridge .app-tool input[type="checkbox"] { accent-color: var(--dp-blue); width: 18px; height: 18px; }
.app-bridge .dp-place-option, .app-bridge .dp-place-option span { color: var(--dp-ink) !important; }

/* 6. 버튼 */
.app-bridge .analysis-v2-submit,
.app-bridge .bw-btn--primary,
.app-bridge .notify-btn--primary {
  min-height: 48px; padding: 0 22px !important; color: #fff !important; font-weight: 700 !important;
  background: var(--dp-ink) !important; border: 0 !important; border-radius: 14px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 6px 16px rgba(11, 18, 32, .2) !important;
  transition: transform .2s ease, box-shadow .25s ease, background .2s ease !important;
}
.app-bridge .notify-btn--primary.notify-btn--sm { min-height: 40px; padding: 0 16px !important; font-size: 14px !important; }
.app-bridge .analysis-v2-submit:hover:not(:disabled), .app-bridge .bw-btn--primary:hover:not(:disabled), .app-bridge .notify-btn--primary:hover:not(:disabled) { transform: translateY(-1px); background: #16213a !important; }
.app-bridge .analysis-v2-submit:disabled, .app-bridge .bw-btn--primary:disabled, .app-bridge .notify-btn--primary:disabled { color: #8a94a6 !important; background: #e3e8f0 !important; box-shadow: none !important; cursor: not-allowed; }
.app-bridge .analysis-v2-ghost-btn,
.app-bridge .bw-btn:not(.bw-btn--primary),
.app-bridge .notify-btn:not(.notify-btn--primary),
.app-bridge .aeo-meta-chip {
  color: var(--dp-ink) !important; background: #fff !important; border: 1px solid rgba(15, 23, 42, .12) !important;
  border-radius: 999px !important; box-shadow: none !important; font-weight: 700 !important;
}
.app-bridge .analysis-v2-ghost-btn:hover, .app-bridge .bw-btn:not(.bw-btn--primary):hover, .app-bridge .notify-btn:not(.notify-btn--primary):hover { border-color: rgba(18, 107, 255, .45) !important; color: var(--dp-blue) !important; }
.app-bridge p.aeo-meta-chip, .app-bridge .analysis-v2-quota-meta { color: var(--dp-ink-2) !important; background: var(--dp-surface-2) !important; font-size: 13px !important; }

/* 7. 탭 */
.app-bridge .dv-post-source__tabs,
.app-bridge .analysis-v2-tabs { display: inline-flex !important; gap: 4px !important; padding: 4px !important; background: #e9edf4 !important; border: 0 !important; border-radius: 14px !important; }
.app-bridge .dv-post-source__tab,
.app-bridge .analysis-v2-tab { min-height: 38px; padding: 0 16px !important; color: var(--dp-ink-2) !important; font-weight: 700 !important; background: transparent !important; border: 0 !important; border-radius: 10px !important; box-shadow: none !important; }
.app-bridge .dv-post-source__tab.is-active,
.app-bridge .analysis-v2-tab.is-active { color: var(--dp-ink) !important; background: #fff !important; box-shadow: var(--dp-shadow-1) !important; }

/* 8. 진단(bw) */
.app-bridge .bw-form { display: grid; gap: 16px; }
.app-bridge .bw-field { display: grid; gap: 6px; }
.app-bridge .bw-section-head h2, .app-bridge .bw-section-head span { color: var(--dp-ink) !important; }
.app-bridge .bw-section-head p { color: var(--dp-ink-2) !important; }
.app-bridge .bw-progress__track { background: #e9edf4 !important; border-radius: 999px; }
.app-bridge .bw-progress__bar { background: linear-gradient(90deg, var(--dp-blue), var(--dp-violet)) !important; border-radius: 999px; }
.app-bridge .bw-form-error { color: var(--dp-bad) !important; }
.app-bridge .bw-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* 9. 알림 */
.app-bridge .notify-layout { gap: 16px !important; }
.app-bridge .notify-badge { border-radius: 999px !important; }
.app-bridge .notify-badge.is-off { color: #8a5300 !important; background: #fff1d6 !important; border-color: transparent !important; }
.app-bridge .notify-badge.is-on { color: #0b7a3c !important; background: #e3f6eb !important; border-color: transparent !important; }
.app-bridge .notify-toggle-list li, .app-bridge .notify-tracks__list li { color: var(--dp-ink) !important; background: var(--dp-surface-2) !important; border: 1px solid var(--dp-line) !important; border-radius: 14px !important; }
.app-bridge .notify-toggle-list span, .app-bridge .notify-tracks__list span { color: var(--dp-ink-2) !important; }
.app-bridge .notify-toggle-list strong { color: var(--dp-ink) !important; }
.app-bridge .notify-common__value { color: var(--dp-ink) !important; }
.app-bridge .app-tool input[type="time"] { min-width: 132px; min-height: 40px; padding: 0 10px !important; }

/* 10. 로딩 오버레이 */
.app-bridge .dp-load-overlay { background: rgba(244, 246, 251, .72) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.app-bridge .dp-load-panel { color: var(--dp-ink) !important; background: #fff !important; border: 0 !important; border-radius: 24px !important; box-shadow: var(--dp-shadow-3) !important; }
.app-bridge .dp-load-title, .app-bridge .dp-load-ring__pct { color: var(--dp-ink) !important; }
.app-bridge .dp-load-step, .app-bridge .dp-load-eyebrow { color: var(--dp-ink-2) !important; }
.app-bridge .dp-load-ring__track { stroke: #e9edf4 !important; }
.app-bridge .dp-load-ring__progress, .app-bridge .dp-load-ring__sweep { stroke: var(--dp-blue) !important; }

/* 진단: 이 진단으로 알 수 있는 것 */
.diag-explain { display: grid; gap: 14px; margin: 0 0 14px; padding: 0; list-style: none; }
.diag-explain li { display: flex; gap: 12px; padding: 16px; background: #fff; border-radius: 18px; box-shadow: var(--dp-shadow-1); }
.diag-explain b { font-size: 15px; color: var(--dp-ink); }
.diag-explain p { margin-top: 2px; font-size: 13.5px; line-height: 1.55; color: var(--dp-ink-2); }
.diag-explain__num { display: grid; place-items: center; width: 30px; height: 30px; flex: none; font-size: 13px; font-weight: 800; color: var(--dp-blue); background: var(--dp-blue-soft); border-radius: 10px; }
.diag-optional { margin-left: 6px; font-size: 12px; font-weight: 600; color: var(--dp-muted); }
@media (min-width: 768px) { .diag-explain { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* 확인 대화상자(dp-dialog) — 횟수 초과 시 D-coin 사용 확인 등 */
.app-bridge .dp-dialog-root { background: rgba(244, 246, 251, .72) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.app-bridge .dp-dialog { color: var(--dp-ink) !important; background: #fff !important; border: 0 !important; border-radius: 24px !important; box-shadow: var(--dp-shadow-3) !important; font-family: var(--font); }
.app-bridge .dp-dialog__title { color: var(--dp-ink) !important; }
.app-bridge .dp-dialog__eyebrow { color: var(--dp-blue) !important; }
.app-bridge .dp-dialog__body { color: var(--dp-ink-2) !important; }
.app-bridge .dp-dialog__btn { min-height: 44px; border-radius: 12px !important; font-weight: 700 !important; }
.app-bridge .dp-dialog__btn--primary { color: #fff !important; background: var(--dp-ink) !important; border: 0 !important; }
.app-bridge .dp-dialog__btn--ghost { color: var(--dp-ink) !important; background: #fff !important; border: 1px solid rgba(15, 23, 42, .12) !important; }
.app-bridge .dp-dialog__btn--danger { color: #fff !important; background: var(--dp-bad) !important; border: 0 !important; }

/* 키워드 태그 입력(플레이스·게시글 상세 분석): 기존 어두운 테마 색을 밝은 테마로 */
.app-bridge .post-kw-field, .app-bridge .dp-kw-field { display: flex; flex-wrap: wrap; align-items: center; gap: 6px !important; min-height: 52px; }
.app-bridge .post-kw-tag, .app-bridge .dp-kw-tag {
  gap: 6px !important; min-height: 34px; padding: 0 6px 0 12px !important; font-size: 14px !important; font-weight: 700 !important;
  color: var(--dp-blue-deep) !important; background: var(--dp-blue-soft) !important; border: 1px solid rgba(18, 107, 255, .22) !important; border-radius: 999px !important;
  animation: kwTagIn .25s cubic-bezier(.2, .9, .3, 1.2) both;
}
.app-bridge .post-kw-tag__remove, .app-bridge .dp-kw-tag__remove {
  display: grid; place-items: center; width: 22px !important; height: 22px !important; font-size: 15px !important;
  color: var(--dp-blue-deep) !important; background: rgba(18, 107, 255, .1) !important; border-radius: 50% !important; transition: background .2s ease, color .2s ease;
}
.app-bridge .post-kw-tag__remove:hover, .app-bridge .dp-kw-tag__remove:hover { color: #fff !important; background: var(--dp-blue) !important; }
.app-bridge .post-kw-field__input, .app-bridge .dp-kw-field__input { flex: 1 1 140px; min-width: 120px; }
@keyframes kwTagIn { from { opacity: 0; transform: scale(.85); } }
@media (prefers-reduced-motion: reduce) { .app-bridge .post-kw-tag, .app-bridge .dp-kw-tag { animation: none; } }

/* 안내 문구 속 강조(예: '분석하기를 누르세요')가 흐리게 보이던 문제 */
html body.app-bridge .dv-guide-meta strong, html body.app-bridge .analysis-v2-run-meta strong { color: var(--dp-ink) !important; font-weight: 800; background: none !important; -webkit-text-fill-color: currentColor !important; }

/* 플레이스 순위 결과 */
html body.app-bridge .dp-place-results { display: grid; gap: 14px; }
html body.app-bridge .dp-place-results > .dp-place-result-summary { padding: 4px 4px 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; }
.app-bridge .dp-place-result-title { font-size: 20px !important; font-weight: 800 !important; letter-spacing: -.03em; color: var(--dp-ink) !important; }
.app-bridge .dp-place-result-sub { margin-top: 4px; font-size: 13.5px; color: var(--dp-ink-2) !important; }
.app-bridge .place-ad-notice { margin-top: 8px; padding: 10px 14px; font-size: 13.5px; color: #8a5300 !important; background: #fff8ea !important; border: 1px solid #f5dfae !important; border-radius: 12px; }
.app-bridge .place-keyword-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 4px; border-bottom: 1px solid var(--dp-line); }
.app-bridge .place-keyword-head { display: flex; align-items: baseline; gap: 8px; }
.app-bridge .place-keyword-head h3 { font-size: 18px !important; font-weight: 800 !important; color: var(--dp-ink) !important; }
.app-bridge .place-keyword-count { padding: 2px 9px; font-size: 12.5px; font-weight: 700; color: var(--dp-ink-2) !important; background: #eef1f6 !important; border-radius: 999px; }
.app-bridge .place-map-link { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; font-size: 13px; font-weight: 700; color: var(--dp-blue) !important; background: var(--dp-blue-soft) !important; border: 0 !important; border-radius: 999px; }
.app-bridge .place-map-link::after { content: "↗"; margin-left: 4px; }
.app-bridge .place-rank-list { margin: 0; padding: 0; list-style: none; }
.app-bridge .place-rank-item { padding: 14px 0 !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--dp-line) !important; border-radius: 0 !important; box-shadow: none !important; transition: background .2s ease; }
.app-bridge .place-rank-item:first-child { border-top: 0 !important; }
.app-bridge .place-rank-badge { display: grid !important; place-items: center; min-width: 32px !important; width: 32px !important; height: 32px !important; font-size: 14px !important; font-weight: 800 !important; color: var(--dp-ink-2) !important; background: #eef1f6 !important; border: 0 !important; border-radius: 10px !important; box-shadow: none !important; }
.app-bridge .place-rank-item:nth-child(-n+3) .place-rank-badge { color: #fff !important; background: linear-gradient(160deg, #2a7bff, var(--dp-blue)) !important; box-shadow: 0 6px 14px rgba(18, 107, 255, .25) !important; }
.app-bridge .place-thumb { border-radius: 12px !important; border: 1px solid var(--dp-line) !important; object-fit: cover; background: #eef1f6 !important; }
.app-bridge .place-thumb--empty { background: #eef1f6 !important; }
.app-bridge .place-name { font-size: 16px !important; font-weight: 800 !important; color: var(--dp-ink) !important; }
.app-bridge .place-meta, .app-bridge .place-extra, .app-bridge .place-address { font-size: 13.5px !important; color: var(--dp-ink-2) !important; }
.app-bridge .place-phone { color: var(--dp-ink) !important; font-weight: 600; }
.app-bridge .place-extra-sep { color: var(--dp-muted) !important; }
.app-bridge .place-tag { padding: 2px 8px !important; font-size: 11.5px !important; font-weight: 800 !important; border: 0 !important; border-radius: 999px !important; }
.app-bridge .place-tag--ad { color: #8a5300 !important; background: #fff1d6 !important; }
.app-bridge .place-tag--new { color: #0b7a3c !important; background: #d9f6e5 !important; }
.app-bridge .place-menu-chip { color: var(--dp-ink-2) !important; background: var(--dp-surface-2) !important; border: 1px solid var(--dp-line) !important; border-radius: 999px !important; }
.app-bridge .place-more-btn { width: 100%; min-height: 46px; margin-top: 8px; font-size: 14.5px !important; font-weight: 700 !important; color: var(--dp-ink) !important; background: var(--dp-surface-2) !important; border: 1px solid rgba(15, 23, 42, .1) !important; border-radius: 14px !important; box-shadow: none !important; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.app-bridge .place-more-btn:hover { color: var(--dp-blue) !important; background: var(--dp-blue-soft) !important; border-color: transparent !important; }
.app-bridge .place-empty { padding: 16px 0; color: var(--dp-muted) !important; }

/* 플레이스 결과에서 바로 알림 등록 */
.app-bridge .place-alert { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 12px 0 6px; padding: 14px 16px; background: linear-gradient(135deg, #eef4ff, #f4efff); border-radius: 16px; transition: background .25s ease; }
.app-bridge .place-alert__icon { display: grid; place-items: center; width: 36px; height: 36px; flex: none; color: var(--dp-blue); background: #fff; border-radius: 12px; box-shadow: var(--dp-shadow-1); }
.app-bridge .place-alert__icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.app-bridge .place-alert__text { flex: 1 1 220px; min-width: 0; font-size: 14px; line-height: 1.55; color: var(--dp-ink-2) !important; }
.app-bridge .place-alert__text b { color: var(--dp-ink); }
.app-bridge .place-alert__text a { font-weight: 700; color: var(--dp-blue) !important; text-decoration: underline; }
.app-bridge .place-alert__btn { min-height: 40px; padding: 0 18px; font: inherit; font-size: 14px; font-weight: 700; color: #fff; background: linear-gradient(180deg, #2a7bff, var(--dp-blue)); border: 0; border-radius: 999px; cursor: pointer; box-shadow: 0 8px 18px rgba(18, 107, 255, .28); transition: transform .2s ease; }
.app-bridge .place-alert__btn:hover:not(:disabled) { transform: translateY(-1px); }
.app-bridge .place-alert__btn:disabled { opacity: .7; cursor: default; }
.app-bridge .place-alert.is-on { background: #e3f6eb; }
.app-bridge .place-alert.is-on .place-alert__icon { color: #0b7a3c; }
.app-bridge .place-alert.is-error { background: #fff5f5; }
.app-bridge .place-alert.is-error .place-alert__text { color: #8f1d17 !important; }
.app-bridge .place-mine-btn { justify-self: start; align-self: flex-start; margin-top: 8px; min-height: 30px; padding: 0 12px; font: inherit; font-size: 12.5px; font-weight: 700; color: var(--dp-ink-2); background: #fff; border: 1px solid rgba(15, 23, 42, .12); border-radius: 999px; cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.app-bridge .place-mine-btn:hover:not(:disabled) { color: var(--dp-blue); border-color: rgba(18, 107, 255, .45); }
.app-bridge .place-mine-btn.is-on { color: #fff; background: var(--dp-good); border-color: transparent; }
.app-bridge .place-mine-btn.is-on::before { content: "🏠 "; }
.app-bridge .place-rank-item.is-mine { margin: 0 -12px; padding-left: 12px !important; padding-right: 12px !important; background: #f1fbf5 !important; border-radius: 14px !important; }
.app-bridge .notify-tracks__target { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 600; color: #0b7a3c !important; }

/* ── 알림 설정 화면 전체 점검 ── */
/* 채널 영역: 흰 카드 안에 흰 카드가 겹치지 않게, 바깥은 투명한 묶음으로 */
html body.app-bridge .notify-channel { gap: 14px !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
html body.app-bridge .notify-channel-tabs { justify-self: start; width: auto !important; max-width: none !important; }
html body.app-bridge .notify-channel-tabs .analysis-v2-tab { min-width: 92px; }
html body.app-bridge .notify-channel-panel { gap: 14px !important; }
html body.app-bridge .notify-layout { align-items: start; }

/* 카드 머리말·설명 */
.app-bridge .notify-block__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-bottom: 4px; }
.app-bridge .notify-block__desc { margin: 4px 0 14px !important; font-size: 14px !important; line-height: 1.6; }
.app-bridge .notify-common__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.app-bridge .notify-common__identity { display: flex; align-items: center; gap: 10px; }
.app-bridge .notify-common__fields { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 14px; }
.app-bridge .notify-common__field { display: inline-flex; align-items: center; gap: 10px; }
.app-bridge .notify-common__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.app-bridge .notify-common__actions .notify-btn { min-height: 40px !important; padding: 0 16px !important; font-size: 14px !important; }

/* 켜고 끄기 스위치: 주황 → 파랑 */
.app-bridge .notify-switch i { background: #d5dbe5 !important; box-shadow: none !important; }
.app-bridge .notify-switch i::after { background: #fff !important; box-shadow: 0 1px 3px rgba(15, 23, 42, .25) !important; }
.app-bridge .notify-switch input:checked + i { background: var(--dp-blue) !important; }
.app-bridge .notify-switch input:focus-visible + i { outline: 2px solid rgba(18, 107, 255, .45) !important; }
.app-bridge .notify-switch:has(input:disabled) i { background: #e9edf4 !important; }
.app-bridge .notify-switch:has(input:disabled:checked) i { background: rgba(18, 107, 255, .35) !important; }

/* 상태 배지(기본 포함 등) */
.app-bridge .notify-toggle-state { min-height: 26px; padding: 0 10px; font-size: 12.5px !important; font-weight: 800 !important; border-radius: 999px; }
.app-bridge .notify-toggle-state--on { color: #0b7a3c !important; background: #d9f6e5 !important; border: 0 !important; }
.app-bridge .notify-toggle-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.app-bridge .notify-toggle-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px !important; }
.app-bridge .notify-toggle-list strong { display: block; font-size: 15px; font-weight: 800; }
.app-bridge .notify-toggle-list span:not(.notify-toggle-state) { font-size: 13.5px; }

/* 추적 목록 */
.app-bridge .notify-tracks__list { display: grid; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
.app-bridge .notify-tracks__list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px 12px 16px !important; background: #fff !important; transition: border-color .2s ease, box-shadow .2s ease; }
.app-bridge .notify-tracks__list li:hover { border-color: rgba(18, 107, 255, .25) !important; box-shadow: var(--dp-shadow-1); }
.app-bridge .notify-tracks__kw { min-width: 0; font-size: 15px; font-weight: 700; color: var(--dp-ink) !important; }
.app-bridge .notify-tracks__controls { display: flex; align-items: center; gap: 10px; flex: none; }
.app-bridge .notify-tracks__alert-label { font-size: 12.5px; font-weight: 700; color: var(--dp-muted) !important; }
.app-bridge .notify-tracks__remove { min-height: 30px; padding: 0 10px; font-size: 13px; font-weight: 700; color: var(--dp-muted) !important; background: transparent !important; border: 0 !important; border-radius: 8px; cursor: pointer; }
.app-bridge .notify-tracks__remove:hover { color: var(--dp-bad) !important; background: #fdecec !important; }
.app-bridge .notify-tracks__add { display: flex; gap: 8px; }
.app-bridge .notify-tracks__add input { flex: 1; min-width: 0; }
.app-bridge .notify-tracks__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--dp-line); }
.app-bridge .notify-tracks__limit { font-size: 13px; }
.app-bridge .notify-inline-msg { font-size: 13.5px; }
.app-bridge .notify-blog-add { display: grid; gap: 10px; padding: 14px; background: var(--dp-surface-2); border: 1px solid var(--dp-line); border-radius: 16px; }
.app-bridge .notify-blog-add__label { font-size: 13px; font-weight: 800; color: var(--dp-ink) !important; }
.app-bridge .notify-blog-add__mode { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.app-bridge .notify-blog-add__ai-note { font-size: 13px; color: var(--dp-ink-2) !important; }
.app-bridge .notify-blog-add .post-analysis-radio { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--dp-ink) !important; }
.app-bridge .notify-blog-add .post-analysis-radio input { accent-color: var(--dp-blue); }

/* 미리보기: 텔레그램 대화창처럼 밝게 */
.app-bridge .notify-preview__phone { min-height: 280px; padding: 16px !important; background: linear-gradient(180deg, #e9f1fb, #dfe9f6) !important; border: 1px solid var(--dp-line); border-radius: 20px !important; }
.app-bridge .notify-preview__toast { color: #fff !important; background: var(--dp-blue) !important; box-shadow: 0 8px 20px rgba(18, 107, 255, .3) !important; }
.app-bridge .notify-preview__bubble { color: var(--dp-ink) !important; background: #fff !important; border-radius: 16px 16px 16px 6px !important; box-shadow: 0 2px 6px rgba(15, 23, 42, .08) !important; }
.app-bridge .notify-preview__bubble strong { color: var(--dp-ink) !important; }
.app-bridge .notify-preview__bubble p { color: var(--dp-ink-2) !important; }
.app-bridge .notify-preview__bubble ul { color: var(--dp-ink) !important; }
.app-bridge .notify-preview__bubble em { color: var(--dp-blue) !important; font-weight: 700; }
.app-bridge .notify-preview__cafe { color: #0b7a3c !important; }
@media (min-width: 1024px) { html body.app-bridge .notify-layout__side { position: sticky; top: 24px; } }
.app-bridge .notify-blog-tracks__meta { display: grid; gap: 2px; min-width: 0; }
.app-bridge .notify-blog-tracks__title, .app-bridge .notify-cafe-tracks__title, .app-bridge .notify-cafe-post-tracks__title { overflow: hidden; font-size: 15px; font-weight: 700; color: var(--dp-ink) !important; white-space: nowrap; text-overflow: ellipsis; }
.app-bridge .notify-blog-tracks__kw { font-size: 13px; color: var(--dp-ink-2) !important; }
html body.app-bridge .notify-common__fields { justify-content: flex-start !important; text-align: left !important; }
html body.app-bridge .notify-common__field { justify-content: flex-start !important; }
@media (max-width: 639px) {
  html body.app-bridge .notify-channel-tabs { display: grid !important; grid-template-columns: repeat(3, 1fr); width: 100% !important; justify-self: stretch; }
  html body.app-bridge .notify-common__hint { flex-basis: 100%; }
}
