/* 장소 화면의 표면과 조작부만 변경한다. 지도·사진·매장 상태 색은 유지한다. */
body.ttonang-theme :is(.restaurant_wrapper, .massageShop_wrapper, .touristDestination_wrapper,
        .shopping_wrapper, .detail-page-container) {
    color: var(--tt-text, #f3f3f3);
    min-width: 0;
    box-sizing: border-box;
}

/* 큰 패널은 얇은 주황 프레임, 내부 카드와 구분선은 차분한 회색으로 구분한다. */
body.ttonang-theme :is(#restaurant-headerSection, #massageShop-headerSection,
        #touristDestination-headerSection, .restaurant_recommended_section,
        .massageShop_category_section, .touristDestination_category_section,
        .shopping_wrapper .shopping-section, .detail-page-container) {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-accent, #fd7e14);
    box-shadow: none;
}
body.ttonang-theme :is(#restaurant-headerSection, #massageShop-headerSection,
        #touristDestination-headerSection) h1 {
    color: var(--tt-text, #f3f3f3);
    text-shadow: none;
    overflow-wrap: anywhere;
}
body.ttonang-theme :is(.restaurant_category_container, .restaurant_info_panel,
        .restaurant_hashtag_section, .massageShop_filter_bar, .touristDestination_category_nav) {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-border, #3b3b3b);
    box-shadow: none;
}

/* 장소 목록과 한시장 지도에서 공유하는 인기 순위 바 및 펼침 목록. */
body.ttonang-theme .place-popularity {
    --pop-accent: var(--tt-accent, #fd7e14);
    --pop-hover: #30251b;
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-accent, #fd7e14);
    box-shadow: none;
}
body.ttonang-theme .place-popularity .place-popularity-heading h2 {
    color: var(--tt-muted, #b5b5b5);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-popularity > .place-popularity-list {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-accent, #fd7e14);
    box-shadow: 0 8px 24px #0006;
}
body.ttonang-theme .place-popularity .place-popularity-list li:nth-child(6) {
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-popularity .place-popularity-item {
    background: transparent;
    color: var(--tt-text, #f3f3f3);
    box-shadow: none;
}
body.ttonang-theme .place-popularity .place-popularity-item:hover {
    background: var(--pop-hover);
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme .place-popularity :is(.place-popularity-status, .place-popularity-retry,
        .place-popularity-rank) { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .place-popularity .place-popularity-retry { background: transparent; box-shadow: none; }
body.ttonang-theme .place-popularity :is(.place-popularity-retry:hover,
        .place-popularity-current .place-popularity-rank,
        .place-popularity-list li:nth-child(-n+3) .place-popularity-rank) {
    color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme .place-popularity .place-popularity-more {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
    box-shadow: none;
}
body.ttonang-theme .place-popularity .place-popularity-more:hover {
    background: var(--pop-hover);
    border-color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme :is(.restaurant_detail, .restaurant_list, .restaurant_hashtag_accordion_content,
        .massageShop_category_content, .massageShop_detail_panel, .massageShop_item_list,
        .touristDestination_category_content, .touristDestination_detail_panel,
        .touristDestination_item_list) {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
    min-width: 0;
}
body.ttonang-theme :is(.restaurant_item, .massageShop_item, .touristDestination_item,
        .massageShop_detail_section, .massageShop_menu_item, .touristDestination_youtube_thumbnail,
        .touristDestination_youtube_thumbnail_list_wrapper) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-border, #3b3b3b);
    box-shadow: none;
}
body.ttonang-theme :is(.restaurant_item, .massageShop_item, .touristDestination_item):hover {
    background: #2c2824;
    border-color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme :is(.restaurant_item.active, .massageShop_item.active, .touristDestination_item.active) {
    background: #30251b;
    border: 1px solid var(--tt-accent, #fd7e14);
    box-shadow: inset 3px 0 var(--tt-accent, #fd7e14);
}
body.ttonang-theme :is(.restaurant_recommended_title, .massageShop_category_toggle,
        .touristDestination_category_toggle) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border: 0;
    border-bottom: 1px solid var(--tt-accent, #fd7e14);
    box-shadow: none;
    white-space: normal;
    overflow-wrap: anywhere;
}
body.ttonang-theme :is(.massageShop_category_toggle, .touristDestination_category_toggle):hover {
    background: #30251b;
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme .touristDestination_youtube_links_title {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3) !important;
    border-bottom: 1px solid var(--tt-border, #3b3b3b);
}

/* 목록과 동적으로 생성되는 상세 정보의 글자색. 별점과 의미 있는 태그 색은 제외한다. */
body.ttonang-theme :is(.restaurant_name, .restaurant_detail_name, .restaurant_list_title_mobile,
        .restaurant_hashtag_title, .massageShop_item_title,
        .massageShop_detail_basic_info .info_item, .massageShop_detail_section h4,
        .massageShop_menu_item strong, .massageShop_detail_additional p,
        .massageShop_detail_section.discount_info p, .massageShop_detail_section.pickup_info p,
        .touristDestination_detail_info, .touristDestination_item_info,
        .touristDestination_youtube_thumbnail span) {
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
    overflow-wrap: anywhere;
}
body.ttonang-theme :is(.restaurant_info_text, .restaurant_info, .restaurant_hashtags,
        .restaurant_detail_label, .restaurant_detail_value, .restaurant_detail_empty,
        .massageShop_filter_bar label, .massageShop_detail_placeholder, .massageShop_menu_item .desc,
        .touristDestination_detail_placeholder, .touristDestination_detail_info strong,
        .touristDestination_detail_info .info_label) {
    color: var(--tt-muted, #b5b5b5);
}
body.ttonang-theme :is(.restaurant_rdetail_no_map, .restaurant_mobile_notice) {
    color: var(--tt-muted, #b5b5b5);
    background: var(--tt-raised, #242424);
}
body.ttonang-theme :is(.restaurant_hashtag_title, .restaurant_detail,
        .massageShop_detail_panel, .touristDestination_detail_panel,
        .touristDestination_youtube_section) { border-color: var(--tt-border, #3b3b3b); }
body.ttonang-theme .restaurant_list_title_mobile { border-top: 1px solid var(--tt-accent, #fd7e14); }
body.ttonang-theme :is(.restaurant_content, .massageShop_item_info,
        .touristDestination_item_info, .massageShop_detail_basic_info) { min-width: 0; }
body.ttonang-theme :is(.restaurant_name, .massageShop_item_title) { white-space: normal; }
body.ttonang-theme .massageShop_menu_item.animated-border { border-color: var(--tt-accent, #fd7e14); }
body.ttonang-theme .massageShop_menu_item.animated-border::before { display: none; }
body.ttonang-theme:has(.massageShop_wrapper, .detail-page-container) .image-modal-backdrop {
    z-index: 20030;
}

/* 검색·필터의 기본 상태와 선택 상태. */
body.ttonang-theme :is(.restaurant_category_btn, .restaurant_hashtag_btn,
        .touristDestination_category_nav_btn, .shopping_wrapper .shopping-filter-btn) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-border, #3b3b3b);
    box-shadow: none;
    min-height: 44px;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
body.ttonang-theme :is(.restaurant_category_btn, .restaurant_hashtag_btn,
        .touristDestination_category_nav_btn, .shopping_wrapper .shopping-filter-btn):hover {
    background: #30251b;
    border-color: var(--tt-accent, #fd7e14);
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme :is(.restaurant_category_btn.active, .restaurant_hashtag_btn.active,
        .touristDestination_category_nav_btn.active, .shopping_wrapper .shopping-filter-btn.active,
        .restaurant_wrapper .info_toggle_btn, .restaurant_hashtag_accordion_toggle_btn,
        .restaurant_wrapper .restaurant_copy_btn, .massageShop_filter_bar button) {
    background: var(--tt-accent, #fd7e14);
    color: var(--tt-accent-text, #fff);
    border-color: var(--tt-accent, #fd7e14);
    box-shadow: none;
    min-height: 44px;
}
body.ttonang-theme .restaurant_wrapper .info_toggle_btn { padding-right: 48px; }
body.ttonang-theme :is(.restaurant_hashtag_accordion_toggle_btn, .massageShop_filter_bar button) {
    white-space: normal;
    overflow-wrap: anywhere;
}
body.ttonang-theme :is(.massageShop_filter_bar input[type="text"], .massageShop_filter_bar select,
        .shopping_wrapper .shopping-search input) {
    color: var(--tt-text, #f3f3f3);
    background: var(--tt-raised, #242424);
    border: 1px solid var(--tt-border, #3b3b3b);
    min-height: 44px;
    max-width: 100%;
    box-sizing: border-box;
    color-scheme: dark;
}
body.ttonang-theme :is(.massageShop_filter_bar input, .shopping_wrapper .shopping-search input)::placeholder {
    color: var(--tt-muted, #b5b5b5);
}

/* 식당·마사지 단건 화면. 지도 iframe과 갤러리 이미지에는 색상 필터를 적용하지 않는다. */
body.ttonang-theme .detail-page-container :is(.info-section, .gallery-section,
        .detail-map-wrapper, .no-map-placeholder, .no-gallery-placeholder,
        .place-contact, .description-text, .menu-unverified) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-border, #3b3b3b);
    box-shadow: none;
}
body.ttonang-theme .detail-page-container :is(.detail-header h1, .info-section h3,
        .detail-map-wrapper h3, .gallery-section h3, .mobile-map-section h4) {
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
    text-shadow: none;
}
body.ttonang-theme .detail-page-container .detail-header { border-bottom-width: 1px; }
body.ttonang-theme .detail-page-container :is(.sub-name, .info-list .info-label,
        .no-map-placeholder p, .no-gallery-placeholder p, .no-info-placeholder,
        .place-contact p, .menu-unverified) { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .detail-page-container :is(.info-value:not(.rating):not(.hashtags),
        .place-contact-id, .description-text) { color: var(--tt-text, #f3f3f3); }
body.ttonang-theme .detail-page-container .info-list li { border-color: var(--tt-border, #3b3b3b); }
body.ttonang-theme .detail-page-container .place-contact-link { color: var(--tt-accent, #fd7e14); }
body.ttonang-theme .detail-page-container :is(.action-btn.btn-primary, .copy-btn:not(.copied)) {
    background: var(--tt-accent, #fd7e14);
    border: 1px solid var(--tt-accent, #fd7e14);
    color: var(--tt-accent-text, #fff);
    box-shadow: none;
}
body.ttonang-theme .detail-page-container .action-btn.btn-secondary {
    background: var(--tt-raised, #242424);
    border: 1px solid var(--tt-border, #3b3b3b);
    color: var(--tt-text, #f3f3f3);
    box-shadow: none;
}
body.ttonang-theme .detail-page-container .action-btn { white-space: normal; overflow-wrap: anywhere; }
body.ttonang-theme .detail-page-container :is(.gallery-item, .gallery-image-wrapper) {
    background: var(--tt-raised, #242424);
}

/* 쇼핑 정보의 표는 가로 스크롤을 유지하고 전체 페이지가 밀리지 않게 한다. */
body.ttonang-theme .shopping_wrapper :is(.section-title, .info-block + .info-block,
        .shopping-filter-container, .shopping-table th, .shopping-table td) {
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .shopping_wrapper :is(.shopping-table td, .tips-list li, .purchase-details h4) {
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme .shopping_wrapper :is(.shopping-price-note, .price-unit, .shopping-table td:last-child) {
    color: var(--tt-muted, #b5b5b5);
}
body.ttonang-theme .shopping_wrapper .shopping-table th {
    background: var(--tt-raised, #242424);
    color: var(--tt-accent, #fd7e14);
    border-bottom-color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme .shopping_wrapper .shopping-table tbody tr:nth-child(even) { background: #202020; }
body.ttonang-theme .shopping_wrapper .shopping-table tbody tr:hover { background: #30251b; }
body.ttonang-theme .shopping_wrapper .purchase-details {
    background: var(--tt-raised, #242424);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .shopping_wrapper :is(.shopping-table td strong, .purchase-details li strong) { color: #86bfff; }
body.ttonang-theme .shopping_wrapper .shopping-table .note-highlight { color: #96dbaa; }
body.ttonang-theme .shopping_wrapper .shopping-table .note-caution { color: #ffaaa3; }
body.ttonang-theme .shopping_wrapper .avoid-list { background: #302022; border-color: #a86060; }
body.ttonang-theme .shopping_wrapper .avoid-list li { color: #ffc0ba; }
body.ttonang-theme :is(.shopping_wrapper, .shoppingMap_wrapper) .shopping_shoppingMap_a {
    color: var(--tt-text, #f3f3f3);
    background: var(--tt-raised, #242424);
    border: 1px solid var(--tt-accent, #fd7e14);
    box-shadow: none;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* 장소 확인일과 제보 모달은 같은 팔레트를 사용한다. 성공·오류 구분은 유지한다. */
body.ttonang-theme .place-information { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .place-information .pi-summary {
    background: var(--tt-raised, #242424);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-information .pi-summary a { color: var(--tt-accent, #fd7e14); }
body.ttonang-theme .place-information :is(.pi-summary button, .pi-close) {
    background: var(--tt-surface, #191919);
    border: 1px solid var(--tt-border, #3b3b3b);
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme .place-information .pi-dialog {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-accent, #fd7e14);
    color-scheme: dark;
}
body.ttonang-theme .place-information .pi-dialog::backdrop { background: #000b; }
body.ttonang-theme .place-information :is(.pi-description, .pi-privacy) { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .place-information .pi-form :is(input, select, textarea) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-information :is(.pi-submit, .pi-login) {
    background: var(--tt-accent, #fd7e14);
    color: var(--tt-accent-text, #fff);
    border-color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme .place-information .pi-result { color: #ffaaa3; }
body.ttonang-theme .place-information .pi-result[data-success="true"] { color: #96dbaa; }

/* 식당·마사지·관광지의 댓글 폼과 목록. */
body.ttonang-theme .place-reviews {
    --pr-accent: var(--tt-accent, #fd7e14);
    --pr-line: var(--tt-border, #3b3b3b);
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-accent, #fd7e14);
}
body.ttonang-theme .place-reviews :is(.pr-compose, .pr-edit-form, .pr-bubble, .pr-bubble::after) {
    background: var(--tt-raised, #242424);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-reviews :is(label, output, time, .pr-status, .pr-empty) { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .place-reviews :is(.pr-meta strong, .pr-text) { color: var(--tt-text, #f3f3f3); }
body.ttonang-theme .place-reviews textarea {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .place-reviews textarea::placeholder { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .place-reviews :is(.pr-avatar, .pr-mine) { background: #30251b; color: #ffc18b; }
body.ttonang-theme .place-reviews .pr-item { border-color: var(--tt-border, #3b3b3b); }
body.ttonang-theme .place-reviews button {
    background: var(--tt-raised, #242424);
    border-color: var(--tt-border, #3b3b3b);
    color: var(--tt-text, #f3f3f3);
    min-height: 44px;
}
body.ttonang-theme .place-reviews :is(button[type="submit"], .pr-login) {
    background: var(--tt-accent, #fd7e14);
    border-color: var(--tt-accent, #fd7e14);
    color: var(--tt-accent-text, #fff);
}
body.ttonang-theme .place-reviews .pr-actions button:hover { background: #30251b; color: #ffc18b; }
body.ttonang-theme .place-reviews .pr-status[data-state="error"] { background: #302022; color: #ffaaa3; }
body.ttonang-theme .place-reviews output[data-over="true"] { color: #ffaaa3; }

/* 한시장 지도 본체의 타일·매장·계단·범례 색상은 덮어쓰지 않는다. */
body.ttonang-theme .shoppingMap_wrapper { background: var(--tt-bg, #111) !important; }
body.ttonang-theme .shoppingMap_wrapper :is(.shoppingMap_legend-container, .shoppingMap_help,
        .exchangeRate_container) {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-accent, #fd7e14);
    box-shadow: none;
}
body.ttonang-theme .shoppingMap_wrapper :is(.exchangeRate_result, .shoppingMap_message:not(.shoppingMap_error):not(.shoppingMap_success)) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .shoppingMap_wrapper :is(.exchangeRate_label, .exchangeRate_info,
        .exchangeRate_loading, .shoppingMap_legend-item, .shoppingMap_gesture-hint) { color: var(--tt-muted, #b5b5b5); }
body.ttonang-theme .shoppingMap_wrapper :is(input[type="text"], .exchangeRate_input) {
    background: var(--tt-raised, #242424);
    color: var(--tt-text, #f3f3f3);
    border-color: var(--tt-border, #3b3b3b);
    min-width: 0;
    max-width: 100%;
}
body.ttonang-theme .shoppingMap_wrapper #shoppingMap_searchButton {
    background: var(--tt-accent, #fd7e14);
    color: var(--tt-accent-text, #fff);
    min-height: 44px;
}
body.ttonang-theme .shoppingMap_wrapper .shoppingMap_zoom-controls {
    background: var(--tt-surface, #191919);
    border-color: var(--tt-border, #3b3b3b);
}
body.ttonang-theme .shoppingMap_wrapper .shoppingMap_zoom-controls button:not(:disabled) {
    background: var(--tt-raised, #242424) !important;
    border-color: var(--tt-border, #3b3b3b);
    color: var(--tt-text, #f3f3f3);
}
body.ttonang-theme .shoppingMap_wrapper .shoppingMap_zoom-controls button:hover:not(:disabled) {
    background: #30251b !important;
    border-color: var(--tt-accent, #fd7e14);
}
body.ttonang-theme #shoppingMap_boothPopupOverlay { background: #000c; z-index: 20020; }
body.ttonang-theme #shoppingMap_boothPopupContent {
    background: var(--tt-surface, #191919);
    color: var(--tt-text, #f3f3f3);
    border: 1px solid var(--tt-accent, #fd7e14);
    max-width: min(800px, calc(100vw - 24px));
    box-sizing: border-box;
}
body.ttonang-theme #shoppingMap_boothPopupContent :is(.shoppingMap_popup-section,
        #shoppingMap_popupItemsTable th, #shoppingMap_popupItemsTable td) { border-color: var(--tt-border, #3b3b3b); }
body.ttonang-theme #shoppingMap_boothPopupContent :is(#shoppingMap_popupItemsTable th,
        #newCommentFormContainer, .reply-form-container) { background: var(--tt-raised, #242424); }
/* 기존 매장 댓글 스타일의 !important만 같은 범위에서 재정의한다. */
body.ttonang-theme #shoppingMap_boothPopupContent :is(.comment, .comment.pc-item,
        .comment.pc-item.depth-1, .comment.pc-item.depth-2, .comment.pc-item.depth-max) {
    background: var(--tt-raised, #242424) !important;
    border-color: var(--tt-border, #3b3b3b) !important;
}
body.ttonang-theme #shoppingMap_boothPopupContent :is(#commentInput, .reply-input, .edit-textarea,
        .pc-reply-text, .shop-comment-expires-label select) {
    background: var(--tt-surface, #191919) !important;
    color: var(--tt-text, #f3f3f3) !important;
    border-color: var(--tt-border, #3b3b3b) !important;
    box-sizing: border-box;
    color-scheme: dark;
}
body.ttonang-theme #shoppingMap_boothPopupContent .pc-reply-box {
    background: var(--tt-raised, #242424) !important;
    border-color: var(--tt-border, #3b3b3b) !important;
}
body.ttonang-theme #shoppingMap_boothPopupContent .pc-meta-report :is(.report-button, .shop-comment-report-button) {
    color: #ffaaa3 !important;
}
body.ttonang-theme #shoppingMap_boothPopupContent :is(#submitCommentBtn,
        .reply-form-container .reply-button, .comment .edit-buttons .save-button):not(:disabled) {
    background: var(--tt-accent, #fd7e14) !important;
    border-color: var(--tt-accent, #fd7e14) !important;
    color: var(--tt-accent-text, #fff) !important;
    min-height: 44px;
}
body.ttonang-theme #shoppingMap_boothPopupContent .shop-comment-image-button {
    background: var(--tt-raised, #242424) !important;
    color: var(--tt-text, #f3f3f3) !important;
    border-color: var(--tt-accent, #fd7e14) !important;
    min-height: 44px;
}
body.ttonang-theme #shoppingMap_boothPopupContent :is(.comment-text-content, .comment-author-info,
        .shoppingMap_popup-section, #shoppingMap_popupItemsTable) { overflow-wrap: anywhere; }
body.ttonang-theme #shoppingMap_boothPopupContent :is(.comment-actions, .edit-buttons,
        .travel-save-actions) { flex-wrap: wrap; gap: 8px; }

/* 신고 창은 한시장 화면에서만 적용해 다른 페이지의 공용 모달과 충돌하지 않는다. */
body.ttonang-theme:has(.shoppingMap_wrapper) #reportModal .modal-card {
    background: var(--tt-surface, #191919) !important;
    color: var(--tt-text, #f3f3f3) !important;
    border: 1px solid var(--tt-accent, #fd7e14) !important;
}
body.ttonang-theme:has(.shoppingMap_wrapper) #reportModal .modal-card :is(header, footer) {
    background: var(--tt-raised, #242424) !important;
}
body.ttonang-theme:has(.shoppingMap_wrapper) #reportModal :is(.report-info-box, .report-reason-text) {
    background: var(--tt-raised, #242424) !important;
    color: var(--tt-text, #f3f3f3) !important;
    border-color: var(--tt-border, #3b3b3b) !important;
}
body.ttonang-theme:has(.shoppingMap_wrapper) #reportModal :is(.report-info-label, .report-section-title) {
    color: var(--tt-muted, #b5b5b5) !important;
}
body.ttonang-theme:has(.shoppingMap_wrapper) #reportModal :is(.report-reason-option input:checked + span,
        footer .btn-primary2) {
    background: var(--tt-accent, #fd7e14) !important;
    color: var(--tt-accent-text, #fff) !important;
    border-color: var(--tt-accent, #fd7e14) !important;
}

body.ttonang-theme :is(.restaurant_wrapper, .massageShop_wrapper, .touristDestination_wrapper,
        .shopping_wrapper, .detail-page-container, .shoppingMap_wrapper, .place-information,
        .place-reviews, #shoppingMap_boothPopupContent) :is(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--tt-accent, #fd7e14);
    outline-offset: 3px;
}

@media (max-width: 600px) {
    body.ttonang-theme :is(.restaurant_wrapper, .massageShop_wrapper, .touristDestination_wrapper,
            .shopping_wrapper) { max-width: 100%; }
    body.ttonang-theme :is(#restaurant-headerSection, #massageShop-headerSection,
            #touristDestination-headerSection) h1 { font-size: clamp(20px, 6vw, 24px); line-height: 1.5; }
    body.ttonang-theme .massageShop_filter_bar { justify-content: stretch; gap: 10px; }
    body.ttonang-theme .massageShop_filter_bar .filter_group { min-width: 0; flex-wrap: wrap; }
    body.ttonang-theme .massageShop_filter_bar .filter_group:has(input[type="text"]) { width: 100%; }
    body.ttonang-theme .massageShop_filter_bar :is(input[type="text"], select) {
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 1 1 120px;
    }
    body.ttonang-theme :is(.massageShop_category_toggle, .touristDestination_category_toggle) {
        min-height: 44px;
        padding-right: 42px;
    }
    body.ttonang-theme .restaurant_item { max-height: none; }
    body.ttonang-theme :is(.restaurant_detail_value, .massageShop_detail_basic_info .info_item,
            .touristDestination_detail_info .info_value) { min-width: 0; overflow-wrap: anywhere; }
    body.ttonang-theme .massageShop_detail_panel,
    body.ttonang-theme .touristDestination_detail_panel { border-bottom-width: 1px; }
    body.ttonang-theme .place-reviews .pr-actions { flex-wrap: wrap; }
    body.ttonang-theme .place-reviews textarea { font-size: 16px; }
    body.ttonang-theme .place-information .pi-dialog-heading h2 { min-width: 0; overflow-wrap: anywhere; }
    body.ttonang-theme .shopping_wrapper .shopping-section { padding: 22px 12px; }
    body.ttonang-theme .shopping_wrapper .table-container { max-width: 100%; overflow-x: auto; }
    body.ttonang-theme #shoppingMap_boothPopupContent { padding: 20px 12px; }
    body.ttonang-theme #shoppingMap_boothPopupContent #shoppingMap_popupBoothNumber { padding-right: 26px; }
    body.ttonang-theme #shoppingMap_boothPopupContent .shop-comment-expires-label {
        white-space: normal !important;
        flex-wrap: wrap;
    }
}
