@charset "utf-8";

/* Keep the rb.hair light theme on a clean white page surface. */
html:not([data-theme="dark"]) body,
html:not([data-theme="dark"]) main {
    background-color: #fff;
}

.rb_bbs_wrap,
.rb_hair_recruit_map_wrap,
.rb_bbs_wrap.rb_bbs_view_wrap,
.rb_bbs_wrap.rb_bbs_write_wrap {
    --rb-primary: var(--rb-brand);
    --rb-primary-strong: var(--rb-brand-text);
    --rb-primary-soft: var(--rb-bg-muted);
    --rb-action: var(--rb-brand);
    --rb-action-hover: var(--rb-brand-text);
    --rb-action-soft: var(--rb-bg-muted);
    --rb-action-on: var(--rb-text-on-primary);
    --primary-color: var(--rb-brand);
    --primary-hover: var(--rb-brand-text);
    --primary-soft: var(--rb-bg-muted);
}

.rb_hair_intro {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 24px 0 18px;
    padding: 20px 22px;
    border: 1px solid #e9dfd1;
    border-radius: 14px;
    background: linear-gradient(120deg, #fff9f1 0%, #fff 100%);
}

.rb_hair_intro_text h3 {
    margin: 0 0 6px;
    font-size: 20px;
    line-height: 1.25;
    color: #2d2317;
}

.rb_hair_intro_text p {
    margin: 0;
    color: #6b5f4f;
    font-size: 14px;
}

.rb_hair_intro_btn {
    white-space: nowrap;
}

.rb_hair_recruit_map_wrap {
    width: 100%;
    margin: 0 auto 14px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-sizing: border-box;
}

.rb_hair_list_map_canvas {
    width: 100%;
    height: 30vh;
    min-height: 160px;
    margin: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: var(--rb-bg-muted, #f9f9f9);
}

.rb_hair_list_map_info {
    min-width: 170px;
    max-width: 260px;
    padding: 8px 10px;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg);
    box-shadow: 0 10px 24px rgba(21, 21, 21, .08);
}

.rb_hair_list_map_info strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rb-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

.rb_hair_list_map_info span {
    display: block;
    color: var(--rb-text-muted);
    font-size: 12px;
    line-height: 1.45;
    word-break: break-all;
}

.rb_hair_list_map_info a {
    color: inherit;
    text-decoration: none;
}

.rb_hair_list_map_info a:hover strong {
    text-decoration: underline;
}

.rb_hair_list_map_marker_label {
    max-width: 160px;
    padding: 4px 8px;
    border: 1px solid var(--rb-border);
    border-radius: 999px;
    background: var(--rb-bg);
    box-shadow: 0 6px 16px rgba(21, 21, 21, .08);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--rb-text);
}

.rb_hair_list_map_marker_label a,
.rb_hair_list_map_marker_label span {
    display: block;
    color: inherit;
    text-decoration: none;
}

.rb_hair_list_map_marker_label a:hover {
    text-decoration: underline;
}

.rb_hair_tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}

.rb_hair_sort_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid #e9dcc9;
    border-radius: 999px;
    background: #fff;
    color: #6e5e4b;
    font-size: 13px;
    text-decoration: none;
}

.rb_hair_sort_btn.is_active {
    background: #3f3427;
    border-color: #3f3427;
    color: #fff;
}

.rb_hair_board_table thead th {
    background: #fff5e8;
    color: #5a4630;
}

.rb_hair_board_table th.rb_hair_hours_col,
.rb_hair_board_table td.rb_hair_hours_col {
    width: 190px;
    min-width: 190px;
    max-width: 190px;
}

.rb_hair_hours_text {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
}

.rb_hair_title_cell a {
    font-weight: 600;
}

.rb_hair_meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    align-items: center;
    margin-top: 6px;
    color: #746556;
}

.rb_hair_chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 20px;
    border: 1px solid #e7cfb3;
    background: #fff6ec;
    font-size: 12px;
    line-height: 1.4;
}

.rb_hair_chip.is_price {
    border-color: #d4e7cf;
    background: #f4fff2;
}

.rb_hair_chip.is_review {
    border-color: #d8dced;
    background: #f6f8ff;
}

.rb_hair_tags {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 2px 10px;
    border-radius: 20px;
    border: 1px solid #eadfce;
    background: #fff;
    color: #6f614f;
    font-size: 12px;
    line-height: 1.4;
}

.rb_hair_category_stack {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.rb_hair_second_category {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: 999px;
    border: 1px solid #d3e2f5;
    background: #f2f8ff;
    color: #335177;
    font-size: 11px;
    line-height: 1.4;
}

.rb_hair_list_open_status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1px 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    line-height: 1.4;
    font-weight: 700;
    white-space: nowrap;
}

.rb_hair_list_open_status.is_open {
    background: #166534;
    border-color: #14532d;
    color: #ffffff;
}

.rb_hair_list_open_status.is_closed {
    background: #e9ecef;
    border-color: #d6dce0;
    color: #495057;
}

#bo_cate2 {
    margin: 8px 0 14px;
}

#bo_cate2 ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

#bo_cate2 li {
    list-style: none;
}

#bo_cate2 a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 4px 12px;
    border-radius: 999px;
    border: 1px solid var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text-muted);
    font-size: 13px;
    text-decoration: none;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

#bo_cate2 a:hover {
    border-color: var(--rb-border-strong);
    color: var(--rb-brand-text);
}

#bo_cate2 #bo_cate2_on {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
    font-weight: 700;
}

.rb_hair_secondary_category_wrap {
    margin-top: 10px;
}

.rb_hair_secondary_category_wrap .help_text {
    display: block;
    margin-bottom: 6px;
}

.rb_hair_secondary_category_checks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rb_hair_secondary_category_check {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.rb_hair_secondary_category_check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rb_hair_secondary_category_check span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text-muted);
    font-size: 13px;
    font-weight: 600;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.rb_hair_secondary_category_check input:checked+span {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

.rb_hair_secondary_category_check input:focus-visible+span {
    outline: 2px solid var(--rb-ui-focus-ring);
    outline-offset: 1px;
}

.rb_hair_category_select_row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
}

.rb_hair_category_select_row .rb_hair_primary_category_wrap,
.rb_hair_category_select_row .rb_hair_secondary_category_wrap {
    width: 35%;
    min-width: 240px;
}

.rb_hair_category_select_row .rb_hair_primary_category_wrap .ca_name,
.rb_hair_category_select_row .rb_hair_secondary_category_wrap .ca_name {
    width: 100%;
}

.rb_hair_category_select_row .rb_hair_secondary_category_wrap {
    margin-top: 0;
}

@media (max-width: 900px) {

    .rb_hair_category_select_row .rb_hair_primary_category_wrap,
    .rb_hair_category_select_row .rb_hair_secondary_category_wrap {
        width: 100%;
        min-width: 0;
    }

    .rb_hair_category_select_row .rb_hair_secondary_category_wrap {
        margin-top: 10px;
    }
}

.rb_hair_view_head {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 320px);
    gap: 14px;
    margin-bottom: 16px;
}

.rb_hair_view_title_wrap h2 {
    margin-bottom: 8px;
}

.rb_hair_view_sub {
    margin: 0;
    color: #6f614f;
    font-size: 14px;
}

.rb_hair_view_tags_row {
    margin: 0 0 14px;
}

.rb_hair_view_notice {
    border: 1px solid #e8decd;
    border-radius: 12px;
    background: #fffaef;
    padding: 14px;
}

.rb_hair_view_notice strong {
    display: block;
    margin-bottom: 4px;
    color: #3f3326;
}

.rb_hair_view_notice p {
    margin: 0;
    color: #746556;
    font-size: 13px;
    line-height: 1.5;
}

.rb_hair_view_cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 0 14px;
}

.rb_hair_view_cta_bottom {
    margin: 0 0 18px;
    padding-top: 4px;
}

.rb_hair_action_btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rb_hair_cta_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid #d9ccb8;
    background: #fff;
    color: #5a4733;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}

.rb_hair_cta_btn:hover {
    background: #fff7ec;
    border-color: #c8b49a;
}

.rb_hair_cta_btn.is_primary {
    background: #fff;
    border-color: #5f4b35;
    color: #5f4b35;
}

.rb_hair_cta_btn.is_primary:hover {
    background: #4f3d2b;
    border-color: #4f3d2b;
}

.rb_hair_view_info_grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 12px 0 16px;
}

.rb_hair_view_info_grid dl {
    margin: 0;
    padding: 15px 16px;
    border: 1px solid #efe4d4;
    border-radius: 12px;
    background: #fff;
}

.rb_hair_view_info_grid dt {
    margin-bottom: 7px;
    font-size: 12px;
    color: #8c7d6a;
}

.rb_hair_view_info_grid dd {
    margin: 0;
    color: #3d3124;
    font-weight: 600;
}

.rb_hair_photo_viewer {
    margin: 0 0 18px;
    padding: 12px;
    border: 1px solid #efe3d3;
    border-radius: 14px;
    background: #fff;
}

.rb_hair_photo_thumbs_bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.rb_hair_photo_nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 74px;
    border: 1px solid #e8ddcc;
    border-radius: 10px;
    background: #fff8ef;
    color: #6b5a48;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.rb_hair_photo_nav:hover {
    border-color: #dcc5a4;
    background: #ffeed8;
}

.rb_hair_photo_thumbs_track {
    display: flex;
    gap: 8px;
    flex: 1;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.rb_hair_photo_thumbs_track::-webkit-scrollbar {
    height: 6px;
}

.rb_hair_photo_thumbs_track::-webkit-scrollbar-thumb {
    background: #d9c7af;
    border-radius: 999px;
}

.rb_hair_photo_thumb {
    flex: 0 0 74px;
    width: 74px;
    height: 74px;
    padding: 0;
    border: 1px solid #e8ddcc;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
}

.rb_hair_photo_thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rb_hair_photo_thumb.is_active {
    border-color: #b88c4a;
    box-shadow: inset 0 0 0 1px #d6b17a;
}

.rb_hair_photo_main {
    position: relative;
    border: 1px solid #e8ddcc;
    border-radius: 12px;
    overflow: hidden;
    background: #fffdfa;
    text-align: center;
}

.rb_hair_photo_main_link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
}

.rb_hair_photo_main_img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto !important;
    max-height: min(68vh, 560px);
    margin: 0 auto;
    object-fit: contain;
    background: #f7f3ec;
}

.rb_hair_hours_view_box {
    margin: 0 0 18px;
    padding: 16px;
    border: 1px solid #efe3d3;
    border-radius: 14px;
    background: linear-gradient(180deg, #fffdfa 0%, #ffffff 100%);
}

.rb_hair_hours_view_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.rb_hair_hours_view_head strong {
    color: #3f3326;
    font-size: 16px;
    font-weight: 700;
}

.rb_hair_hours_status_badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid #ebd5b9;
    background: #fff1df;
    color: #5f4b35;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.rb_hair_hours_status_badge.is_open {
    border-color: #d1fae5;
    background: #ecfdf5;
    color: #047857;
}

.rb_hair_hours_status_badge.is_break {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.rb_hair_hours_status_badge.is_closed {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.rb_hair_hours_today_note {
    margin: 0 0 10px;
    color: #6b5a48;
    font-size: 12px;
    line-height: 1.45;
}

.rb_hair_hours_compact_list,
.rb_hair_hours_view_list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
}

.rb_hair_hours_compact_list li,
.rb_hair_hours_view_list li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    list-style: none;
    padding: 11px 12px;
    border: 1px solid #e8ddcc;
    border-radius: 10px;
    background: #fff;
}

.rb_hair_hours_compact_list li.is_today,
.rb_hair_hours_view_list li.is_today {
    border-color: #f6c973;
    background: #fff9ef;
}

.rb_hair_hours_compact_list strong,
.rb_hair_hours_view_list strong {
    color: #857564;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.rb_hair_hours_today_mark {
    display: inline-flex;
    align-items: center;
    height: 19px;
    padding: 0 6px;
    border-radius: 999px;
    background: #f59e0b;
    color: #fff;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
}

.rb_hair_hours_time_wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.rb_hair_hours_compact_list .rb_hair_hours_time,
.rb_hair_hours_view_list .rb_hair_hours_time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid #ece3d7;
    background: #fff8ef;
    color: #413529;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
}

.rb_hair_hours_meta {
    font-size: 11px;
    line-height: 1.3;
    color: #8b7a67;
}

.rb_hair_hours_meta.is_break {
    color: #b45309;
}

.rb_hair_hours_meta.is_memo {
    color: var(--rb-brand-text);
}

.rb_hair_hours_compact_list li.is_closed .rb_hair_hours_time,
.rb_hair_hours_view_list li.is_closed .rb_hair_hours_time {
    border-color: #f1dfdf;
    background: #fff4f4;
    color: #9f3030;
}

.rb_hair_hours_details {
    margin-top: 10px;
}

.rb_hair_hours_details summary {
    cursor: pointer;
    user-select: none;
    color: #6b5a48;
    font-size: 12px;
    font-weight: 600;
    list-style: none;
}

.rb_hair_hours_details summary::-webkit-details-marker {
    display: none;
}

.rb_hair_hours_details summary::before {
    content: '▸';
    display: inline-block;
    margin-right: 6px;
    transform: translateY(-1px);
}

.rb_hair_hours_details[open] summary::before {
    content: '▾';
}

.rb_hair_hours_details .rb_hair_hours_view_list {
    margin-top: 9px;
}

.rb_hair_price_view_box {
    background: #fff;
}

.rb_hair_price_view_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.rb_hair_price_view_head strong {
    color: #3f3326;
}

.rb_hair_price_view_head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 8px;
    border-radius: 999px;
    background: #fff1df;
    border: 1px solid #ebd5b9;
    color: #5f4b35;
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_price_view_table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.rb_hair_price_view_table tr {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) minmax(0, 184px);
    align-items: center;
    border: 1px solid #e8ddcc;
    border-radius: 10px;
    background: #fff;
}

.rb_hair_price_view_table tr+tr {
    margin-top: 8px;
}

.rb_hair_price_view_table tr:last-child {
    border-bottom: 1px solid #e8ddcc;
}

.rb_hair_price_view_table th,
.rb_hair_price_view_table td {
    padding: 10px 12px;
    min-width: 0;
    font-size: 14px;
    vertical-align: middle;
    border: 0;
}

.rb_hair_price_view_table th.is_category {
    width: auto;
    text-align: left;
}

.rb_hair_price_view_table .rb_hair_price_cat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid #ece3d7;
    background: #fff8ef;
    color: #7c694f;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    word-break: keep-all;
}

.rb_hair_price_view_table td.is_name {
    color: #413529;
    font-weight: 600;
    line-height: 1.35;
}

.rb_hair_price_view_table td.is_price {
    width: auto;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.25;
    font-weight: 700;
    font-size: 17px;
}

.rb_hair_price_view_empty {
    margin: 0;
    color: #7a6a58;
    font-size: 13px;
}

.rb-hair-prefill-notice {
    margin: 0 0 14px;
    padding: 12px 14px;
    color: #255f4e;
    background: #edf8f2;
    border: 1px solid #bcdcca;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
}

.rb_hair_write_notice {
    padding: 14px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg-muted);
}

.rb_hair_write_notice strong {
    display: block;
    margin-bottom: 6px;
    color: var(--rb-text);
}

.rb_hair_write_notice p {
    margin: 0;
    color: var(--rb-text-muted);
    font-size: 13px;
}

.rb_hair_write_fields {
    margin-top: 12px;
}

.rb_hair_write_grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rb_hair_write_grid li {
    list-style: none;
}

.rb_hair_write_grid li.is_full {
    grid-column: 1 / -1;
}

.rb_hair_write_grid .help_text {
    display: block;
    margin-bottom: 6px;
}

.rb_hair_hours_field {
    margin-top: 4px;
}

.rb_hair_hours_editor {
    border: 1px solid #e8dccb;
    border-radius: 12px;
    background: #fffdfa;
    padding: 12px;
}

.rb_hair_hours_head,
.rb_hair_hours_row {
    display: grid;
    grid-template-columns: 80px 120px 120px 1fr minmax(160px, 0.9fr) 70px;
    gap: 8px;
    align-items: center;
}

.rb_hair_hours_head {
    padding: 0 0 8px;
    border-bottom: 1px solid #eee2d1;
    color: #8a7a66;
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_hours_rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.rb_hair_hours_quick {
    display: grid;
    grid-template-columns: 80px 120px 120px 1fr minmax(160px, 0.9fr) 70px 96px;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e3d6c3;
}

.rb_hair_hours_quick_days {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.rb_hair_hours_quick_days.is_hidden {
    display: none;
}

.rb_hair_hours_bulk {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e3d6c3;
}

.rb_hair_hours_bulk label {
    display: block;
    margin: 0 0 6px;
    color: #6f604e;
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_hours_bulk_text {
    min-height: 120px;
    resize: vertical;
    line-height: 1.5;
}

.rb_hair_hours_bulk_actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.rb_hair_hours_quick_day {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.rb_hair_hours_quick_day input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rb_hair_hours_quick_day span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 32px;
    padding: 0 10px;
    border: 1px solid #dfcfb8;
    border-radius: 999px;
    background: #fff;
    color: #5a4733;
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_hours_quick_day input:checked+span {
    border-color: #b5946f;
    background: #fff3e3;
    color: #4f3d2b;
}

.rb_hair_hours_day {
    color: #4e3f2f;
    font-size: 14px;
}

.rb_hair_hours_closed_label {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.rb_hair_hours_closed_label input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rb_hair_hours_closed_label span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #d7dbe2;
    border-radius: 8px;
    background: #f3f4f6;
    color: #8a93a1;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.rb_hair_hours_closed_label input:checked+span {
    border-color: #5a6068;
    background: #5a6068;
    color: #ffffff;
}

.rb_hair_hours_closed_label input:focus-visible+span {
    outline: 2px solid var(--rb-ui-focus-ring);
    outline-offset: 1px;
}

.rb_hair_hours_apply_btn {
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid #dfcfb8;
    border-radius: 8px;
    background: #fff;
    color: #5a4733;
    font-size: 13px;
    font-family: 'font-B', sans-serif;
    font-weight: 700;
    text-shadow: none;
    -webkit-text-stroke: 0;
}

.rb_hair_hours_desc {
    margin: 10px 0 0;
    color: #867764;
    font-size: 12px;
}

.rb_hair_price_field {
    margin-top: 4px;
}

.rb_hair_price_editor {
    border: 1px solid #e8dccb;
    border-radius: 12px;
    background: #fffdfa;
    padding: 12px;
}

.rb_hair_price_head,
.rb_hair_price_row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) 230px 128px;
    gap: 8px;
    align-items: center;
}

.rb_hair_price_head {
    padding: 0 0 8px;
    border-bottom: 1px solid #eee2d1;
    color: #8a7a66;
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_price_rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.rb_hair_price_row .input,
.rb_hair_price_row .select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.rb_hair_price_row .js-hair-price-category {
    font-weight: 700;
}

.rb_hair_price_value_range {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr);
    gap: 6px;
    align-items: center;
}

.rb_hair_price_range_sep {
    color: #7b6e5b;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.rb_hair_price_value_range .input {
    text-align: right;
    letter-spacing: -0.01em;
}

.rb_hair_price_row.is_category_continued .js-hair-price-category {
    visibility: hidden;
    pointer-events: none;
}

.rb_hair_price_row.is_category_continued:hover .js-hair-price-category,
.rb_hair_price_row.is_category_continued:focus-within .js-hair-price-category {
    visibility: visible;
    pointer-events: auto;
}

.rb_hair_price_controls {
    display: flex;
    gap: 6px;
}

.rb_hair_price_btn_drag,
.rb_hair_price_btn_del,
.rb_hair_price_btn_add,
.rb_hair_price_btn_bulk {
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dfcfb8;
    border-radius: 8px;
    background: #fff;
    color: #5a4733;
    font-size: 13px;
    font-family: 'font-B', sans-serif;
    font-weight: 700;
    text-shadow: none;
    -webkit-text-stroke: 0;
}

.rb_hair_price_btn_drag,
.rb_hair_price_btn_del {
    flex: 1;
}

.rb_hair_price_btn_drag {
    cursor: grab;
}

.rb_hair_price_btn_drag:active {
    cursor: grabbing;
}

.rb_hair_price_btn_add {
    padding: 0 14px;
}

.rb_hair_price_btn_bulk {
    padding: 0 14px;
}

.rb_hair_price_row.is_dragging {
    opacity: 0.55;
}

.rb_hair_price_actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.rb_hair_price_actions p {
    margin: 0;
    color: #867764;
    font-size: 12px;
}

.rb_hair_price_bulk {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed #e3d7c6;
}

.rb_hair_price_bulk label {
    display: block;
    margin: 0 0 6px;
    color: #6f604e;
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_price_bulk_text {
    min-height: 120px;
    resize: vertical;
    line-height: 1.5;
}

.rb_hair_price_bulk_actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.rb_hair_price_bulk_actions p {
    margin: 0;
    color: #867764;
    font-size: 12px;
}

.rb_hair_inline_meta_field {
    margin-top: 4px;
}

.rb_hair_inline_meta_grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rb_hair_service_field {
    margin-top: 4px;
}

.rb_hair_service_panel {
    border: 1px solid #e8dccb;
    border-radius: 14px;
    background: #fffdfa;
    padding: 14px;
}

.rb_hair_service_panel_head {
    margin-bottom: 10px;
}

.rb_hair_service_panel_head strong {
    display: block;
    color: #3f3326;
    font-size: 14px;
}

.rb_hair_service_panel_head p {
    margin: 4px 0 0;
    color: #7b6b58;
    font-size: 12px;
}

.rb_hair_service_checks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
}

.rb_hair_service_checks li {
    list-style: none;
}

.rb_hair_service_check {
    display: block;
    position: relative;
    cursor: pointer;
}

.rb_hair_service_check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.rb_hair_service_card_body {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 10px 12px;
    border: 1px solid #e8ddcc;
    border-radius: 12px;
    background: #fff;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.rb_hair_service_card_icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: #fbf2e8;
    color: #796650;
    flex: 0 0 32px;
}

.rb_hair_service_card_icon svg {
    width: 18px;
    height: 18px;
}

.rb_hair_service_card_icon svg * {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rb_hair_service_card_text {
    color: #5f503f;
    font-size: 13px;
    line-height: 1.35;
}

.rb_hair_service_check:hover .rb_hair_service_card_body {
    border-color: #d8c7ae;
    background: #fffaf3;
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body {
    border-color: #b5946f;
    background: #fff3e3;
    box-shadow: inset 0 0 0 1px #e8d0ad;
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_icon {
    background: #f0dec6;
    color: #5d4832;
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_text {
    color: #3f3326;
    font-weight: 600;
}

.rb_hair_services_box {
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid #efe3d3;
    border-radius: 12px;
    background: #fffdfa;
}

.rb_hair_services_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.rb_hair_services_head strong {
    color: #3f3326;
}

.rb_hair_services_head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 8px;
    border-radius: 999px;
    background: #fff1df;
    border: 1px solid #ebd5b9;
    color: #5f4b35;
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_services_list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.rb_hair_services_list li {
    list-style: none;
    padding: 5px 10px;
    border: 1px solid #eadfcd;
    border-radius: 999px;
    background: #fff;
    color: #5f503f;
    font-size: 13px;
}

.rb_hair_services_cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
}

.rb_hair_services_cards li {
    list-style: none;
}

.rb_hair_services_cards .rb_hair_service_card_body {
    min-height: 58px;
    cursor: default;
}

.rb_hair_services_empty {
    margin: 0;
    color: #7a6a58;
    font-size: 13px;
}

@media all and (max-width: 980px) {
    .rb_hair_view_head {
        grid-template-columns: 1fr;
    }

    .rb_hair_view_cta {
        justify-content: center;
    }

    .rb_hair_view_info_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media all and (max-width: 1024px) {
    .rb_hair_recruit_map_wrap {
        margin-bottom: 15px;
    }

    .rb_hair_list_map_canvas {
        height: 260px;
        min-height: 160px;
        border-radius: 0;
    }

    .rb_hair_map_resize_handle {
        height: 28px;
        border-radius: 0;
    }

    .rb_hair_map_resize_handle::before {
        top: -10px;
        bottom: -10px;
    }

    .rb_hair_map_resize_grip {
        width: 64px;
        height: 6px;
    }

    .rb_hair_map_resize_handle:hover {
        background: transparent;
    }

    .rb_hair_map_resize_handle:hover .rb_hair_map_resize_grip {
        width: 64px;
        background: var(--rb-border-strong);
    }

    .rb_hair_map_resize_handle.is-dragging {
        background: var(--rb-bg-muted);
    }

    .rb_hair_map_resize_handle.is-dragging .rb_hair_map_resize_grip {
        width: 80px;
        background: var(--rb-brand);
    }
}

@media all and (max-width: 767px) {
    .rb_hair_intro {
        flex-direction: column;
        align-items: flex-start;
    }

    .rb_hair_tools {
        margin-bottom: 10px;
    }

    .rb_hair_board_table .board_pc {
        display: none;
    }

    .rb_hair_action_btns {
        width: 100%;
    }

    .rb_hair_action_btns .rb_hair_cta_btn {
        flex: 1;
        text-align: center;
    }

    .rb_hair_write_grid {
        grid-template-columns: 1fr;
    }

    .rb_hair_inline_meta_grid {
        grid-template-columns: 1fr;
    }

    .rb_hair_service_checks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rb_hair_services_cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rb_hair_view_info_grid {
        grid-template-columns: 1fr;
    }

    .rb_hair_photo_viewer {
        padding: 10px;
    }

    .rb_hair_photo_thumbs_bar {
        gap: 6px;
        margin-top: 8px;
    }

    .rb_hair_photo_nav {
        width: 28px;
        height: 64px;
        font-size: 22px;
    }

    .rb_hair_photo_thumb {
        flex-basis: 64px;
        width: 64px;
        height: 64px;
    }

    .rb_hair_photo_main_img {
        max-height: min(58vh, 420px);
    }

    .rb_hair_hours_compact_list,
    .rb_hair_hours_view_list {
        grid-template-columns: 1fr;
    }

    .rb_hair_price_head {
        display: none;
    }

    .rb_hair_hours_head {
        display: none;
    }

    .rb_hair_hours_row {
        grid-template-columns: 46px 100px 100px 1fr 1fr 60px;
        gap: 6px;
    }

    .rb_hair_hours_quick {
        grid-template-columns: 46px 100px 100px 1fr 1fr 60px;
        gap: 6px;
    }

    .rb_hair_hours_quick_days {
        gap: 6px;
    }

    .rb_hair_hours_bulk_actions {
        flex-direction: column;
        align-items: stretch;
    }

    .rb_hair_hours_closed_label {
        grid-column: 2 / 5;
    }

    .rb_hair_hours_apply_btn {
        grid-column: 2 / 5;
        width: 100%;
    }

    .rb_hair_price_row {
        grid-template-columns: 1fr;
    }

    .rb_hair_price_row.is_category_continued .js-hair-price-category {
        visibility: visible;
        pointer-events: auto;
    }

    .rb_hair_price_controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .rb_hair_price_btn_del,
    .rb_hair_price_btn_drag,
    .rb_hair_price_btn_add,
    .rb_hair_price_btn_bulk {
        width: 100%;
    }

    .rb_hair_price_actions {
        flex-direction: column;
        align-items: stretch;
    }

    .rb_hair_price_bulk_actions {
        flex-direction: column;
        align-items: stretch;
    }

    .rb_hair_price_view_table th {
        width: auto;
    }

    .rb_hair_price_view_table tr {
        grid-template-columns: 92px minmax(0, 1fr) minmax(0, 132px);
    }

    .rb_hair_price_view_table td.is_price {
        width: auto;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .rb_hair_photo_main_img {
        max-height: min(54vh, 360px);
    }
}

/* Neutral theme override */
:root {
    --rb-hair-palette-body: var(--rb-text);
    --rb-hair-palette-heading: var(--rb-text);
    --rb-hair-palette-meta: var(--rb-text-muted);
    --rb-hair-palette-line: var(--rb-divider);
}

/* Keep write/view palette local so late-loaded global CSS still resolves to this tone. */
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap {
    --rb-hair-palette-body: var(--rb-text);
    --rb-hair-palette-heading: var(--rb-text);
    --rb-hair-palette-meta: var(--rb-text-muted);
    --rb-hair-palette-line: var(--rb-divider);
    --text-primary: var(--rb-hair-palette-heading);
    --text-secondary: var(--rb-hair-palette-body);
    --text-tertiary: var(--rb-hair-palette-meta);
    --border-color: var(--rb-hair-palette-line);
    --border-light: var(--rb-hair-palette-line);
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_body,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_body p,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_body li,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_body div,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_body span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_fields,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_fields .input,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_fields .select,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_fields textarea {
    color: var(--rb-hair-palette-body) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_title_wrap h2,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names .sv_member,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names .member,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_notice strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_info_grid dd,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_head strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_head strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_notice strong {
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_sub,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .view_info_span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .view_info_span a,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .view_info_span_ip,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_notice p,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_info_grid dt,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_notice p,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_grid .help_text {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_notice,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_view_info_grid dl,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_photo_viewer,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_photo_main,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_box,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list li,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list li,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_reservation_view_box,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table tr,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_bbs_for_mem_view,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_notice,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_steps,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_preview_card,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_write_preview_card li,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_editor,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_editor,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_reservation_editor,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_reservation_row,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_reservation_desc,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_reservation_discount_item,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_inline_meta_grid,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .wr_content textarea {
    border-color: var(--rb-hair-palette-line) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_service_panel_head strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_services_head strong {
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_service_panel_head p,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_services_head span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_services_empty {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_service_card_icon,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_service_card_icon {
    color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_services_head span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_services_head span {
    background: var(--rb-primary-soft) !important;
    border-color: var(--rb-primary) !important;
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_service_check:hover .rb_hair_service_card_body,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_service_check:hover .rb_hair_service_card_body {
    border-color: var(--rb-border-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_service_check input:checked + .rb_hair_service_card_body,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_service_check input:checked + .rb_hair_service_card_body {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    box-shadow: inset 0 0 0 1px var(--rb-primary) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap .rb_hair_service_check input:checked + .rb_hair_service_card_body .rb_hair_service_card_icon {
    background: var(--rb-primary) !important;
    color: var(--rb-text-on-primary) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap .rb_hair_service_check input:checked + .rb_hair_service_card_body .rb_hair_service_card_text {
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_box {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_head strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_live_summary,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list .rb_hair_hours_time,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list .rb_hair_hours_time {
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_today_note,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_meta,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_details summary {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list li,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list li {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list li.is_today,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list li.is_today {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_compact_list .rb_hair_hours_time,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_view_list .rb_hair_hours_time {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg-muted) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_status_badge {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_status_badge.is_open {
    border-color: #b2e3c0 !important;
    background: #edf9f1 !important;
    color: #166534 !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_status_badge.is_break {
    border-color: #ffd8a8 !important;
    background: #fff4e6 !important;
    color: #e67700 !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_status_badge.is_closed {
    border-color: var(--rb-divider) !important;
    background: var(--rb-bg-muted) !important;
    color: var(--rb-text-muted) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_hours_today_mark {
    border: 1px solid var(--rb-primary) !important;
    background: var(--rb-primary) !important;
    color: var(--rb-text-on-primary) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_editor {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_head {
    border-bottom-color: var(--rb-hair-palette-line) !important;
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_quick,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_bulk {
    border-top-color: var(--rb-hair-palette-line) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_day,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_bulk label,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_desc {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_quick_day span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_closed_label span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_apply_btn {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_quick_day input:checked + span {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_closed_label input:checked + span {
    border-color: var(--rb-brand) !important;
    background: var(--rb-brand) !important;
    color: var(--rb-text-on-primary) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_hours_apply_btn:hover {
    background: var(--rb-bg-muted) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_box {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_head strong,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table td.is_name,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table td.is_price,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table .rb_hair_price_cat {
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_head span,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_empty,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_toggle_icon::before {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_head span {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table tr {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_table .rb_hair_price_cat {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    color: var(--rb-primary-strong) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_editor {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_head {
    border-bottom-color: var(--rb-hair-palette-line) !important;
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_row .input,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_row .select {
    border-color: var(--rb-hair-palette-line) !important;
    color: var(--rb-hair-palette-body) !important;
    background: var(--rb-bg) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_row.is_category_continued .js-hair-price-category {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_bulk {
    border-top-color: var(--rb-hair-palette-line) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_range_sep,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_actions p,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_bulk_text,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_bulk label,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_bulk_actions p {
    color: var(--rb-hair-palette-meta) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_drag,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_del,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_add,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_bulk {
    border-color: var(--rb-hair-palette-line) !important;
    background: var(--rb-bg) !important;
    color: var(--rb-hair-palette-heading) !important;
}

html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_drag:hover,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_del:hover,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_add:hover,
html:not([data-theme="dark"]) .rb_bbs_wrap.rb_bbs_write_wrap .rb_hair_price_btn_bulk:hover {
    background: var(--rb-bg-muted) !important;
}

.rb_hair_intro {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_intro_text h3 {
    color: var(--rb-text);
}

.rb_hair_intro_text p {
    color: var(--rb-text-muted);
}

.rb_hair_sort_btn {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text-muted);
}

.rb_hair_sort_btn.is_active {
    background: var(--rb-primary);
    border-color: var(--rb-primary);
    color: var(--rb-text-on-primary);
}

.rb_hair_board_table thead th {
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

.rb_hair_meta {
    color: var(--rb-text-muted);
}

.rb_hair_chip {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

.rb_hair_chip.is_price {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
}

.rb_hair_chip.is_review {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_tags {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text-muted);
}

.rb_hair_second_category {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
}

.rb_hair_view_sub {
    color: var(--rb-text-muted);
}

.rb_hair_view_notice {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_view_notice strong {
    color: var(--rb-text);
}

.rb_hair_view_notice p {
    color: var(--rb-text-muted);
}

.rb_hair_cta_btn {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text);
    text-decoration: none !important;
}

.rb_hair_cta_btn:hover {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
}

.rb_hair_cta_btn.is_primary {
    background: var(--rb-bg);
    border-color: var(--rb-primary);
    color: var(--rb-primary);
}

.rb_hair_cta_btn.is_primary:hover {
    background: var(--rb-primary-soft);
    border-color: var(--rb-primary-strong);
    color: var(--rb-primary-strong);
}

.rb_hair_view_info_grid dl {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_view_info_grid dt {
    color: var(--rb-text-muted);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .02em;
}

.rb_hair_view_info_grid dd {
    color: var(--rb-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
}

.rb_hair_photo_viewer {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_photo_nav {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

.rb_hair_photo_nav:hover {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
}

.rb_hair_photo_thumbs_track::-webkit-scrollbar-thumb {
    background: var(--rb-border-strong);
}

.rb_hair_photo_thumb {
    border-color: var(--rb-border);
}

.rb_hair_photo_thumb.is_active {
    border-color: var(--rb-primary);
    box-shadow: inset 0 0 0 1px var(--rb-primary);
}

.rb_hair_photo_main {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_photo_main_img {
    background: var(--rb-bg-muted);
}

.rb_hair_hours_view_box {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_hours_view_head strong {
    color: var(--rb-text);
}

.rb_hair_hours_status_badge {
    background: var(--rb-primary-soft);
    border-color: var(--rb-primary);
    color: var(--rb-primary-strong);
}

.rb_hair_hours_status_badge.is_open {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

.rb_hair_hours_status_badge.is_break {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.rb_hair_hours_status_badge.is_closed {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.rb_hair_hours_today_note {
    color: var(--rb-text-muted);
}

.rb_hair_hours_compact_list li,
.rb_hair_hours_view_list li {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_hours_compact_list li.is_today,
.rb_hair_hours_view_list li.is_today {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
}

.rb_hair_hours_compact_list strong,
.rb_hair_hours_view_list strong {
    color: var(--rb-text-muted);
}

.rb_hair_hours_today_mark {
    background: var(--rb-primary);
}

.rb_hair_hours_compact_list .rb_hair_hours_time,
.rb_hair_hours_view_list .rb_hair_hours_time {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

.rb_hair_hours_meta {
    color: var(--rb-text-muted);
}

.rb_hair_hours_meta.is_break {
    color: #c2410c;
}

.rb_hair_hours_meta.is_memo {
    color: var(--rb-brand-text);
}

.rb_hair_hours_compact_list li.is_closed .rb_hair_hours_time,
.rb_hair_hours_view_list li.is_closed .rb_hair_hours_time {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.rb_hair_write_notice {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_write_notice strong {
    color: var(--rb-text);
}

.rb_hair_write_notice p {
    color: var(--rb-text-muted);
}

.rb_hair_price_editor {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_hours_editor {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_hours_head {
    border-bottom-color: var(--rb-border);
    color: var(--rb-text-muted);
}

.rb_hair_hours_quick {
    border-top-color: var(--rb-border);
}

.rb_hair_hours_bulk {
    border-top-color: var(--rb-border);
}

.rb_hair_hours_bulk label {
    color: var(--rb-text);
}

.rb_hair_hours_quick_day span {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text);
}

.rb_hair_hours_quick_day input:checked+span {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

.rb_hair_hours_day {
    color: var(--rb-text);
}

.rb_hair_hours_closed_label {
    color: inherit;
}

.rb_hair_hours_closed_label span {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
}

.rb_hair_hours_closed_label input:checked+span {
    border-color: var(--rb-brand);
    background: var(--rb-brand);
    color: var(--rb-text-on-primary);
}

.rb_hair_hours_apply_btn {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text);
}

.rb_hair_hours_apply_btn:hover {
    background: var(--rb-bg-muted);
}

.rb_hair_hours_desc {
    color: var(--rb-text-muted);
}

.rb_hair_price_head {
    border-bottom-color: var(--rb-border);
    color: var(--rb-text-muted);
}

.rb_hair_price_btn_drag,
.rb_hair_price_btn_del,
.rb_hair_price_btn_add,
.rb_hair_price_btn_bulk {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text);
}

.rb_hair_price_btn_drag:hover,
.rb_hair_price_btn_del:hover,
.rb_hair_price_btn_add:hover,
.rb_hair_price_btn_bulk:hover {
    background: var(--rb-bg-muted);
}

.rb_hair_price_actions p {
    color: var(--rb-text-muted);
}

.rb_hair_price_bulk {
    border-top-color: var(--rb-border);
}

.rb_hair_price_bulk label {
    color: var(--rb-text);
}

.rb_hair_price_bulk_actions p {
    color: var(--rb-text-muted);
}

.rb_hair_price_view_box {
    background: var(--rb-bg);
}

.rb_hair_reservation_view_box {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_price_view_head strong {
    color: var(--rb-text);
}

.rb_hair_price_view_head span {
    background: var(--rb-primary-soft);
    border-color: var(--rb-primary);
    color: var(--rb-primary-strong);
}

.rb_hair_price_view_table tr {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_price_view_table .rb_hair_price_cat {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

.rb_hair_price_view_table td.is_name {
    color: var(--rb-text);
}

.rb_hair_price_view_table td.is_price {
    color: var(--rb-text);
}

.rb_hair_price_view_empty {
    color: var(--rb-text-muted);
}

.rb_hair_service_panel {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

.rb_hair_service_panel_head strong {
    color: var(--rb-text);
}

.rb_hair_service_panel_head p {
    color: var(--rb-text-muted);
}

.rb_hair_service_card_body {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_service_card_icon {
    background: var(--rb-primary-soft);
    color: var(--rb-primary);
}

.rb_hair_service_card_text {
    color: var(--rb-text);
}

.rb_hair_service_check:hover .rb_hair_service_card_body {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    box-shadow: inset 0 0 0 1px var(--rb-primary);
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_icon {
    background: var(--rb-primary);
    color: var(--rb-text-on-primary);
}

.rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_text {
    color: var(--rb-primary-strong);
}

.rb_hair_services_box {
    border-color: var(--rb-border);
    background: var(--rb-bg);
}

.rb_hair_services_head strong {
    color: var(--rb-text);
}

.rb_hair_services_head span {
    background: var(--rb-primary-soft);
    border-color: var(--rb-primary);
    color: var(--rb-primary-strong);
}

.rb_hair_services_list li {
    border-color: var(--rb-border);
    background: var(--rb-bg);
    color: var(--rb-text);
}

.rb_hair_services_empty {
    color: var(--rb-text-muted);
}

/* Force detail card typography */
.rb_bbs_wrap .rb_hair_view_info_grid dt {
    color: var(--rb-hair-palette-meta) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: .02em !important;
}

.rb_bbs_wrap .rb_hair_view_info_grid dd {
    color: var(--rb-hair-palette-heading) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
}

/* Write step UI */
.rb_hair_write_steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg);
}

.rb_hair_step_nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.rb_hair_step_nav li {
    list-style: none;
}

.rb_hair_step_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--rb-border);
    border-radius: 999px;
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.rb_hair_step_btn.is_active {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

.rb_hair_step_actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.rb_hair_step_move {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--rb-border);
    border-radius: 8px;
    background: var(--rb-bg);
    color: var(--rb-text);
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_step_move.is_primary {
    border-color: var(--rb-primary);
    background: var(--rb-primary);
    color: var(--rb-text-on-primary);
}

.rb_hair_step_move:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.rb_hair_write_preview_card {
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg-muted);
    padding: 14px;
}

.rb_hair_write_preview_card strong {
    display: block;
    margin-bottom: 10px;
    color: var(--rb-text);
    font-size: 14px;
}

.rb_hair_write_preview_card ul {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.rb_hair_write_preview_card li {
    list-style: none;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg);
    padding: 10px;
}

.rb_hair_write_preview_card li span {
    display: block;
    color: var(--rb-text-muted);
    font-size: 11px;
    margin-bottom: 4px;
}

.rb_hair_write_preview_card li p {
    margin: 0;
    color: var(--rb-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    word-break: break-word;
}

/* View detail highlight */
.rb_hair_hours_live_summary {
    margin: 0 0 8px;
    color: var(--rb-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

/* Reservation fields in write skin */
.rb_hair_reservation_editor {
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg-muted);
    padding: 12px;
}

.rb_hair_reservation_row {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--rb-border);
    border-radius: 16px;
    background: var(--rb-bg);
    box-shadow: var(--rb-shadow-sm);
}

.rb_hair_reservation_rows {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 12px;
}

.rb_hair_reservation_intro {
    padding: 6px 4px 2px;
}

.rb_hair_reservation_intro strong {
    display: block;
    color: var(--rb-text);
    font-size: 14px;
    font-weight: 700;
}

.rb_hair_reservation_intro p {
    margin: 4px 0 0;
    color: var(--rb-text-muted);
    font-size: 12px;
}

.rb_hair_reservation_row_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.rb_hair_reservation_row_title {
    color: var(--rb-text);
    font-size: 16px;
    font-weight: 700;
}

.rb_hair_reservation_row_controls {
    flex: 0 0 auto;
}

.rb_hair_reservation_form_grid {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 16px;
}

.rb_hair_reservation_primary_fields,
.rb_hair_reservation_secondary_fields,
.rb_hair_reservation_meta_fields {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rb_hair_reservation_field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rb_hair_reservation_field_label {
    color: var(--rb-text-muted);
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_reservation_row .input {
    width: 100%;
}

.rb_hair_reservation_discount_rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rb_hair_reservation_discount_block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg-muted);
}

.rb_hair_reservation_discount_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.rb_hair_reservation_discount_labels {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 68px;
    gap: 8px;
    color: var(--rb-text-muted);
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_reservation_discount_row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 68px;
    gap: 8px;
}

.rb_hair_reservation_discount_field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rb_hair_reservation_discount_field_label {
    display: none;
    color: var(--rb-text-muted);
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_reservation_discount_add {
    justify-content: center;
    width: 100%;
}

.rb_hair_reservation_desc {
    min-height: 94px;
    line-height: 1.45;
    resize: vertical;
}

/* Designer Reservation Cards (View) */
/* Price View Accordion */
.rb_hair_price_view_details {
    margin-top: 20px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--rb-bg);
}

.rb_hair_price_view_summary {
    list-style: none;
    cursor: pointer;
    outline: none;
}

.rb_hair_price_view_summary::-webkit-details-marker {
    display: none;
}

.rb_hair_price_view_summary .rb_hair_price_view_head {
    margin: 0;
    padding: 18px 20px;
    border-bottom: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background 0.2s;
}

.rb_hair_price_view_summary:hover .rb_hair_price_view_head {
    background: var(--rb-bg-muted);
}

.rb_hair_price_view_details[open] .rb_hair_price_view_head {
    border-bottom: 1px solid var(--rb-border);
}

.rb_hair_price_toggle_icon {
    position: relative;
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
}

.rb_hair_price_toggle_icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--rb-text-muted);
    border-bottom: 2px solid var(--rb-text-muted);
    transform: translate(-50%, -70%) rotate(45deg);
    transition: transform 0.3s ease;
}

.rb_hair_price_view_details[open] .rb_hair_price_toggle_icon {
    transform: rotate(180deg);
}

.rb_hair_price_view_box {
    padding: 0;
}

.rb_hair_price_view_box .rb_hair_price_view_head {
    display: none;
}

/* Hide the internal head when wrapped in details */

.rb_bbs_wrap.rb_bbs_view_wrap .rb_hair_price_view_details + .rb_hair_services_box {
    margin-top: 14px;
}

.rb_hair_reservation_view_box {
    margin: 15px 0 18px;
    padding: 14px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg);
}

.rb_hair_reservation_cards {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rb_hair_reservation_card {
    padding: 0;
    background: var(--rb-bg);
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    transition: all 0.2s ease;
}

.rb_hair_reservation_card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    border-color: var(--rb-border-strong);
}

.rb_hair_reservation_toggle {
    width: 100%;
}

.rb_hair_reservation_summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 18px 20px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.rb_hair_reservation_summary::-webkit-details-marker {
    display: none;
}

.rb_hair_reservation_toggle_icon {
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--rb-text-muted);
    border-bottom: 2px solid var(--rb-text-muted);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex: 0 0 auto;
    margin-top: -2px;
}

.rb_hair_reservation_toggle[open] .rb_hair_reservation_toggle_icon {
    transform: rotate(-135deg);
    margin-top: 3px;
}

.rb_hair_reservation_panel {
    border-top: 1px solid var(--rb-border);
    padding: 16px 20px 20px;
}

.rb_hair_reservation_card_name {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: var(--rb-text);
    margin: 0;
}

.rb_hair_reservation_card_desc {
    font-size: 14px;
    color: var(--rb-text-muted);
    margin: 0;
    line-height: 1.4;
    word-break: keep-all;
}

.rb_hair_reservation_discount_list {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rb_hair_reservation_discount_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
}

.rb_hair_reservation_discount_time {
    font-size: 13px;
    color: var(--rb-text-muted);
}

.rb_hair_reservation_discount_price {
    color: var(--rb-text);
    font-size: 14px;
    font-weight: 700;
}

.rb_hair_reservation_meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

.rb_hair_reservation_meta li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--rb-border);
    border-radius: 999px;
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
    font-size: 13px;
}

.rb_hair_reservation_meta span {
    color: var(--rb-text-muted);
}

.rb_hair_reservation_meta strong,
.rb_hair_reservation_meta a {
    color: var(--rb-text);
    font-weight: 600;
}

.rb_hair_reservation_meta a {
    text-decoration: none;
}

.rb_hair_reservation_meta a:hover {
    text-decoration: underline;
}

.rb_hair_reservation_card_link {
    margin: 10px 0 0;
}

.rb_hair_reservation_card_link a {
    color: var(--rb-brand-text);
    text-decoration: underline;
    text-underline-offset: 2px;
    word-break: break-all;
}

@media all and (max-width: 767px) {

    .rb_hair_reservation_row {
        padding: 14px;
        gap: 12px;
    }

    .rb_hair_reservation_row_head,
    .rb_hair_reservation_discount_head,
    .rb_hair_reservation_form_grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .rb_hair_reservation_discount_row {
        grid-template-columns: 1fr;
    }

    .rb_hair_reservation_discount_labels {
        display: none;
    }

    .rb_hair_reservation_discount_field_label {
        display: block;
    }

    .rb_hair_reservation_discount_item {
        flex-direction: column;
        align-items: flex-start;
    }

    /* Views */
    .rb_hair_reservation_summary {
        padding: 14px 14px;
    }

    .rb_hair_reservation_panel {
        padding: 12px 14px 14px;
    }
}

@media all and (max-width: 767px) {
    .rb_hair_write_steps {
        flex-direction: column;
        align-items: stretch;
    }

    .rb_hair_step_actions {
        justify-content: flex-end;
    }

    .rb_hair_write_preview_card ul {
        grid-template-columns: 1fr;
    }
}

/* View + Write palette override (light mode) */
.rb_hair_view_body,
.rb_hair_view_body p,
.rb_hair_view_body li,
.rb_hair_view_body div,
.rb_hair_view_body span,
.rb_hair_view_body strong,
.rb_hair_view_body b,
.rb_hair_view_body em,
.rb_hair_services_list li,
.rb_hair_service_card_text,
.rb_hair_write_fields,
.rb_hair_write_fields .input,
.rb_hair_write_fields .select,
.rb_hair_write_fields textarea,
.rb_hair_reservation_row .input,
.rb_hair_reservation_desc,
.rb_hair_reservation_discount_item {
    color: var(--rb-hair-palette-body);
}

.rb_hair_view_title_wrap h2,
.rb_bbs_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names,
.rb_bbs_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names .sv_member,
.rb_bbs_wrap .rb_bbs_for_mem_view .rb_bbs_for_mem_names .member,
.rb_hair_view_notice strong,
.rb_hair_view_info_grid dd,
.rb_hair_price_view_head strong,
.rb_hair_hours_view_head strong,
.rb_hair_hours_live_summary,
.rb_hair_price_view_table td.is_name,
.rb_hair_price_view_table td.is_price,
.rb_hair_reservation_card_name,
.rb_hair_reservation_discount_price,
.rb_hair_reservation_meta strong,
.rb_hair_reservation_meta a,
.rb_hair_write_notice strong,
.rb_hair_write_preview_card strong,
.rb_hair_write_preview_card li p,
.rb_hair_reservation_row_title {
    color: var(--rb-hair-palette-heading);
}

.rb_hair_view_sub,
.rb_bbs_wrap .view_info_span,
.rb_bbs_wrap .view_info_span a,
.rb_bbs_wrap .view_info_span_ip,
.rb_hair_view_notice p,
.rb_hair_view_info_grid dt,
.rb_hair_hours_today_note,
.rb_hair_hours_compact_list strong,
.rb_hair_hours_view_list strong,
.rb_hair_hours_meta,
.rb_hair_price_view_empty,
.rb_hair_services_empty,
.rb_hair_write_notice p,
.rb_hair_write_grid .help_text,
.rb_hair_hours_head,
.rb_hair_price_head,
.rb_hair_hours_desc,
.rb_hair_price_actions p,
.rb_hair_price_bulk_actions p,
.rb_hair_hours_bulk label,
.rb_hair_price_bulk label,
.rb_hair_write_preview_card li span,
.rb_hair_reservation_intro p,
.rb_hair_reservation_discount_labels,
.rb_hair_reservation_discount_field_label,
.rb_hair_reservation_discount_time,
.rb_hair_reservation_meta li,
.rb_hair_reservation_meta span {
    color: var(--rb-hair-palette-meta);
}

.rb_hair_view_notice,
.rb_hair_view_info_grid dl,
.rb_hair_photo_viewer,
.rb_hair_photo_main,
.rb_hair_hours_view_box,
.rb_hair_hours_compact_list li,
.rb_hair_hours_view_list li,
.rb_hair_reservation_view_box,
.rb_hair_price_view_table tr,
.rb_hair_service_panel,
.rb_hair_services_box,
.rb_hair_service_card_body,
.rb_hair_write_notice,
.rb_hair_write_steps,
.rb_hair_write_preview_card,
.rb_hair_write_preview_card li,
.rb_hair_hours_editor,
.rb_hair_price_editor,
.rb_hair_reservation_editor,
.rb_hair_reservation_row,
.rb_hair_reservation_desc,
.rb_hair_reservation_discount_item,
.rb_hair_reservation_meta li,
.rb_hair_inline_meta_grid,
.rb_hair_hours_quick_day span,
.rb_hair_hours_closed_label span,
.rb_hair_hours_apply_btn,
.rb_hair_price_btn_drag,
.rb_hair_price_btn_del,
.rb_hair_price_btn_add,
.rb_hair_price_btn_bulk,
.rb_hair_step_btn,
.rb_hair_step_move,
.rb_hair_hours_head,
.rb_hair_price_head {
    border-color: var(--rb-hair-palette-line);
}

.rb_hair_hours_head,
.rb_hair_price_head {
    border-bottom-color: var(--rb-hair-palette-line);
}

.rb_hair_hours_quick,
.rb_hair_hours_bulk,
.rb_hair_price_bulk,
.rb_hair_reservation_discount_block {
    border-top-color: var(--rb-hair-palette-line);
}

/* ===== Dark mode overrides ===== */
[data-theme="dark"] .rb_hair_intro,
[data-theme="dark"] .rb_hair_list_map_canvas,
[data-theme="dark"] .rb_hair_list_map_info,
[data-theme="dark"] .rb_hair_sort_btn,
[data-theme="dark"] .rb_hair_tags,
[data-theme="dark"] .rb_hair_second_category,
[data-theme="dark"] .rb_hair_hours_editor,
[data-theme="dark"] .rb_hair_price_editor,
[data-theme="dark"] .rb_hair_reservation_panel,
[data-theme="dark"] .rb_hair_reservation_summary,
[data-theme="dark"] .rb_hair_services_list li,
[data-theme="dark"] .rb_hair_write_steps {
    background: var(--bg-content);
    border-color: var(--border-color);
}

[data-theme="dark"] .rb_hair_intro {
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_intro_text h3,
[data-theme="dark"] .rb_hair_list_map_info strong,
[data-theme="dark"] .rb_hair_list_map_marker_label,
[data-theme="dark"] .rb_hair_board_table thead th,
[data-theme="dark"] .rb_hair_hours_day,
[data-theme="dark"] .rb_hair_price_range_sep,
[data-theme="dark"] .rb_hair_services_list li,
[data-theme="dark"] .rb_hair_view_info_grid dd {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_intro_text p,
[data-theme="dark"] .rb_hair_list_map_info span,
[data-theme="dark"] .rb_hair_meta,
[data-theme="dark"] .rb_hair_hours_head,
[data-theme="dark"] .rb_hair_price_head,
[data-theme="dark"] .rb_hair_hours_desc,
[data-theme="dark"] .rb_hair_hours_bulk label,
[data-theme="dark"] .rb_hair_services_empty,
[data-theme="dark"] .rb_hair_view_info_grid dt {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_board_table thead th {
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_sort_btn,
[data-theme="dark"] .rb_hair_hours_quick_day span,
[data-theme="dark"] .rb_hair_hours_apply_btn,
[data-theme="dark"] .rb_hair_secondary_category_check span {
    background: var(--bg-content);
    color: var(--text-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .rb_hair_secondary_category_check input:checked+span {
    background: var(--rb-primary-soft);
    border-color: var(--rb-primary);
    color: var(--rb-primary-strong);
}

[data-theme="dark"] .rb_hair_sort_btn.is_active {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--bg-content);
}

[data-theme="dark"] .rb_hair_list_open_status.is_open {
    background: rgba(34, 197, 94, .32);
    border-color: rgba(34, 197, 94, .65);
    color: #dcfce7;
}

[data-theme="dark"] .rb_hair_list_open_status.is_closed {
    background: rgba(100, 116, 139, .35);
    border-color: rgba(148, 163, 184, .5);
    color: var(--rb-text);
}

[data-theme="dark"] .rb_hair_chip,
[data-theme="dark"] .rb_hair_tags,
[data-theme="dark"] .rb_hair_second_category {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_chip.is_price,
[data-theme="dark"] .rb_hair_chip.is_review {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .rb_hair_hours_head,
[data-theme="dark"] .rb_hair_price_head,
[data-theme="dark"] .rb_hair_hours_quick,
[data-theme="dark"] .rb_hair_hours_bulk {
    border-color: var(--border-color);
}

[data-theme="dark"] .rb_hair_hours_closed_label span {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_hours_closed_label input:checked+span {
    background: var(--text-primary);
    border-color: var(--text-primary);
    color: var(--bg-content);
}

[data-theme="dark"] .rb_hair_list_map_marker_label {
    background: var(--bg-content);
    border-color: var(--border-color);
}

/* Map resize controls */
.rb_hair_list_map_frame {
    position: relative;
    min-height: 160px;
}

.rb_hair_list_map_inner {
    width: 100%;
    height: 100%;
    min-height: 160px;
    border-radius: inherit;
}

.rb_hair_list_map_inner.is_error {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    color: #b91c1c;
    background: #fff7f7;
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
}

.rb_hair_map_resize_handle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 14px;
    margin-top: -2px;
    border: 0;
    border-radius: 0 0 10px 10px;
    background: transparent;
    cursor: ns-resize;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .15s ease;
}

.rb_hair_map_resize_handle::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    bottom: -8px;
    z-index: 1;
}

.rb_hair_map_resize_handle:hover,
.rb_hair_map_resize_handle:focus-visible,
.rb_hair_map_resize_handle.is-dragging {
    background: var(--rb-bg-muted);
    outline: none;
}

.rb_hair_map_resize_grip {
    position: relative;
    z-index: 2;
    display: block;
    width: 44px;
    height: 4px;
    border-radius: 999px;
    background: var(--rb-border-strong);
    pointer-events: none;
    transition: background-color .15s ease, width .15s ease;
}

.rb_hair_map_resize_handle:hover .rb_hair_map_resize_grip,
.rb_hair_map_resize_handle:focus-visible .rb_hair_map_resize_grip,
.rb_hair_map_resize_handle.is-dragging .rb_hair_map_resize_grip {
    width: 56px;
    background: var(--rb-brand);
}

/* PDF viewer */
.rb_pdf_viewer_list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.rb_pdf_viewer_item {
    margin: 0;
    padding: 12px;
    border: 1px solid var(--rb-border);
    border-radius: 12px;
    background: var(--rb-bg);
}

.rb_pdf_canvas_wrap {
    width: 100%;
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg-muted);
}

.rb_pdf_canvas_wrap canvas {
    display: block;
    margin: 0 auto 10px;
    background: var(--rb-bg);
}

.rb_pdf_canvas_wrap canvas:last-child {
    margin-bottom: 0;
}

.rb_pdf_actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.rb_pdf_actions label {
    margin: 0;
    color: var(--rb-text-muted);
    font-size: 12px;
    line-height: 1.4;
}

.rb_pdf_actions .rb_pdf_render_all {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--rb-border);
    border-radius: 8px;
    background: var(--rb-bg);
    color: var(--rb-text);
}

.rb_pdf_actions .rb_pdf_render_all:hover {
    background: var(--rb-bg-muted);
}

.rb_pdf_actions .rb_pdf_render_all:disabled {
    opacity: .6;
    cursor: default;
}

/* Dark mode coverage extension */
[data-theme="dark"] #bo_cate2 a {
    border-color: var(--border-color);
    background: var(--bg-content);
    color: var(--text-secondary);
}

[data-theme="dark"] #bo_cate2 a:hover {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

[data-theme="dark"] #bo_cate2 #bo_cate2_on {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary);
}

[data-theme="dark"] .rb_hair_map_resize_handle {
    background: transparent;
}

[data-theme="dark"] .rb_hair_map_resize_handle:hover,
[data-theme="dark"] .rb_hair_map_resize_handle:focus-visible,
[data-theme="dark"] .rb_hair_map_resize_handle.is-dragging {
    background: rgba(255, 255, 255, .08);
}

[data-theme="dark"] .rb_hair_map_resize_grip {
    background: rgba(255, 255, 255, .34);
}

[data-theme="dark"] .rb_hair_map_resize_handle:hover .rb_hair_map_resize_grip,
[data-theme="dark"] .rb_hair_map_resize_handle:focus-visible .rb_hair_map_resize_grip,
[data-theme="dark"] .rb_hair_map_resize_handle.is-dragging .rb_hair_map_resize_grip {
    background: var(--rb-brand);
}

[data-theme="dark"] .rb_hair_list_map_inner.is_error {
    color: #fca5a5;
    background: rgba(127, 29, 29, .25);
}

[data-theme="dark"] .rb_pdf_viewer_item {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_pdf_canvas_wrap {
    border-color: var(--border-color);
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_pdf_actions label {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_pdf_actions .rb_pdf_render_all {
    border-color: var(--border-color);
    background: var(--bg-content);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_pdf_actions .rb_pdf_render_all:hover {
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_write_notice,
[data-theme="dark"] .rb_hair_reservation_editor,
[data-theme="dark"] .rb_hair_service_panel,
[data-theme="dark"] .rb_hair_services_box {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_reservation_row {
    border-color: var(--border-color);
    background: var(--bg-secondary);
    box-shadow: none;
}

[data-theme="dark"] .rb_hair_reservation_intro strong,
[data-theme="dark"] .rb_hair_reservation_row_title,
[data-theme="dark"] .rb_hair_reservation_field_label {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_reservation_intro p {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_desc {
    border-color: var(--border-color);
    background: var(--bg-content);
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_reservation_discount_block {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_reservation_discount_labels,
[data-theme="dark"] .rb_hair_reservation_discount_field_label {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_discount_item {
    border-color: var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_reservation_discount_time {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_discount_price {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_reservation_meta li {
    border-color: var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_reservation_meta span {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_meta strong,
[data-theme="dark"] .rb_hair_reservation_meta a {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_service_panel_head strong,
[data-theme="dark"] .rb_hair_services_head strong {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_service_panel_head p {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_service_card_body {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_service_card_icon {
    background: var(--rb-primary-soft);
    color: var(--rb-primary);
}

[data-theme="dark"] .rb_hair_service_card_text {
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_service_check:hover .rb_hair_service_card_body {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
}

[data-theme="dark"] .rb_hair_service_check input:checked+.rb_hair_service_card_body {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    box-shadow: inset 0 0 0 1px var(--rb-primary);
}

[data-theme="dark"] .rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_icon {
    background: var(--rb-primary);
    color: var(--rb-text-on-primary);
}

[data-theme="dark"] .rb_hair_service_check input:checked+.rb_hair_service_card_body .rb_hair_service_card_text {
    color: var(--rb-primary-strong);
}

[data-theme="dark"] .rb_hair_services_head span {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

[data-theme="dark"] .rb_hair_view_notice {
    border-color: var(--border-color);
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_view_notice strong {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_view_notice p {
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_cta_btn {
    border-color: var(--border-color);
    background: var(--bg-content);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_cta_btn:hover {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

[data-theme="dark"] .rb_hair_cta_btn.is_primary {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary);
}

[data-theme="dark"] .rb_hair_cta_btn.is_primary:hover {
    border-color: var(--rb-primary-strong);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

[data-theme="dark"] .rb_hair_photo_viewer {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_photo_nav {
    border-color: var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_photo_nav:hover {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-muted);
    color: var(--rb-text);
}

[data-theme="dark"] .rb_hair_photo_thumbs_track::-webkit-scrollbar-thumb {
    background: var(--rb-border-strong);
}

[data-theme="dark"] .rb_hair_photo_thumb {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_photo_thumb.is_active {
    border-color: var(--rb-primary);
    box-shadow: inset 0 0 0 1px var(--rb-primary);
}

[data-theme="dark"] .rb_hair_photo_main {
    border-color: var(--border-color);
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_photo_main_img {
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_price_view_details {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_price_view_summary:hover .rb_hair_price_view_head {
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_price_view_details[open] .rb_hair_price_view_head {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .rb_hair_price_toggle_icon::before {
    border-right-color: var(--text-tertiary);
    border-bottom-color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_view_box {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_reservation_card {
    border-color: var(--border-color);
    background: var(--bg-content);
    box-shadow: none;
}

[data-theme="dark"] .rb_hair_reservation_card:hover {
    border-color: var(--rb-border-strong);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

[data-theme="dark"] .rb_hair_reservation_toggle_icon {
    border-right-color: var(--text-tertiary);
    border-bottom-color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_reservation_panel {
    border-top-color: var(--border-color);
    background: var(--bg-secondary);
}

[data-theme="dark"] .rb_hair_reservation_card_name {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_reservation_card_desc {
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_reservation_card_link a {
    color: var(--rb-primary);
}

[data-theme="dark"] .rb_hair_reservation_card_link a:hover {
    color: var(--rb-primary-strong);
}

@media all and (max-width: 767px) {
    [data-theme="dark"] .rb_hair_reservation_row {
        border-color: var(--border-color);
        background: var(--bg-secondary);
    }

    [data-theme="dark"] .rb_hair_reservation_row_controls {
        width: 100%;
    }
}

/* View content readability in dark mode */
.rb_hair_view_body {
    color: inherit;
    line-height: 1.72;
}

.rb_hair_view_body > *:first-child {
    margin-top: 0;
}

.rb_hair_view_body > *:last-child {
    margin-bottom: 0;
}

[data-theme="dark"] .rb_hair_view_info_grid dl {
    border-color: var(--border-color);
    background: var(--bg-content);
}

[data-theme="dark"] .rb_hair_hours_view_box {
    border-color: var(--border-color);
    background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-content) 100%);
}

[data-theme="dark"] .rb_hair_hours_view_head strong,
[data-theme="dark"] .rb_hair_hours_live_summary {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_hours_status_badge {
    border-color: var(--rb-primary);
    background: var(--rb-primary-soft);
    color: var(--rb-primary-strong);
}

[data-theme="dark"] .rb_hair_hours_status_badge.is_open {
    border-color: rgba(34, 197, 94, .45);
    background: rgba(34, 197, 94, .18);
    color: #86efac;
}

[data-theme="dark"] .rb_hair_hours_status_badge.is_break {
    border-color: rgba(249, 115, 22, .45);
    background: rgba(249, 115, 22, .18);
    color: #fdba74;
}

[data-theme="dark"] .rb_hair_hours_status_badge.is_closed {
    border-color: rgba(244, 63, 94, .45);
    background: rgba(244, 63, 94, .18);
    color: #fda4af;
}

[data-theme="dark"] .rb_hair_hours_details summary {
    color: var(--text-secondary);
}

[data-theme="dark"] .rb_hair_hours_details summary::before {
    color: var(--text-tertiary);
}

[data-theme="dark"] .rb_hair_view_body,
[data-theme="dark"] .rb_hair_view_body p,
[data-theme="dark"] .rb_hair_view_body li,
[data-theme="dark"] .rb_hair_view_body div,
[data-theme="dark"] .rb_hair_view_body span,
[data-theme="dark"] .rb_hair_view_body strong,
[data-theme="dark"] .rb_hair_view_body b,
[data-theme="dark"] .rb_hair_view_body em {
    color: var(--text-primary);
}

[data-theme="dark"] .rb_hair_view_body a {
    color: var(--rb-primary) !important;
}

[data-theme="dark"] .rb_hair_view_body [style*="background"],
[data-theme="dark"] .rb_hair_view_body [style*="background-color"] {
    background: transparent !important;
    background-color: transparent !important;
}

[data-theme="dark"] .rb_hair_view_body table,
[data-theme="dark"] .rb_hair_view_body thead,
[data-theme="dark"] .rb_hair_view_body tbody,
[data-theme="dark"] .rb_hair_view_body tfoot,
[data-theme="dark"] .rb_hair_view_body tr,
[data-theme="dark"] .rb_hair_view_body th,
[data-theme="dark"] .rb_hair_view_body td {
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .rb_hair_view_body table {
    background: rgba(255, 255, 255, .06) !important;
}

[data-theme="dark"] .rb_hair_view_body th,
[data-theme="dark"] .rb_hair_view_body td,
[data-theme="dark"] .rb_hair_view_body [bgcolor] {
    background: transparent !important;
    background-color: transparent !important;
}

[data-theme="dark"] .rb_hair_view_body [style*="color"] {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .rb_hair_view_body font,
[data-theme="dark"] .rb_hair_view_body font[color] {
    color: var(--text-primary) !important;
}

/* Dark mode accent: follow the shared board palette. */
[data-theme="dark"] #bo_cate2 #bo_cate2_on,
[data-theme="dark"] .rb_hair_sort_btn.is_active,
[data-theme="dark"] .rb_hair_step_btn.is_active,
[data-theme="dark"] .rb_hair_step_move.is_primary,
[data-theme="dark"] .rb_hair_cta_btn.is_primary,
[data-theme="dark"] .rb_hair_cta_btn.is_primary:hover,
[data-theme="dark"] .rb_hair_hours_today_mark {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary) !important;
    color: var(--rb-text-on-primary) !important;
}

[data-theme="dark"] .rb_hair_price_view_head span,
[data-theme="dark"] .rb_hair_price_view_table .rb_hair_price_cat,
[data-theme="dark"] .rb_hair_services_head span,
[data-theme="dark"] .rb_hair_hours_status_badge:not(.is_open):not(.is_break):not(.is_closed),
[data-theme="dark"] .rb_hair_service_card_icon,
[data-theme="dark"] .rb_hair_service_check input:checked + .rb_hair_service_card_body .rb_hair_service_card_icon {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    color: var(--rb-primary-strong) !important;
}

[data-theme="dark"] .rb_hair_price_view_box,
[data-theme="dark"] .rb_hair_price_view_table tr {
    background: var(--bg-content) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .rb_hair_price_view_table td.is_name,
[data-theme="dark"] .rb_hair_price_view_table td.is_price {
    color: var(--rb-text) !important;
}

[data-theme="dark"] .rb_hair_photo_thumb.is_active {
    border-color: var(--rb-primary) !important;
    box-shadow: inset 0 0 0 1px var(--rb-primary) !important;
}

[data-theme="dark"] .rb_hair_service_check input:checked + .rb_hair_service_card_body {
    border-color: var(--rb-primary) !important;
    background: var(--rb-primary-soft) !important;
    box-shadow: inset 0 0 0 1px var(--rb-primary) !important;
}

[data-theme="dark"] .rb_hair_service_check input:checked + .rb_hair_service_card_body .rb_hair_service_card_text,
[data-theme="dark"] .rb_hair_view_body a,
[data-theme="dark"] .rb_hair_reservation_card_link a {
    color: var(--rb-primary-strong) !important;
}

[data-theme="dark"] .rb_hair_view_body a:hover,
[data-theme="dark"] .rb_hair_reservation_card_link a:hover {
    color: var(--rb-primary) !important;
}

/* Dark mode final text normalization (hours/price headers) */
[data-theme="dark"] .rb_hair_price_view_head strong,
[data-theme="dark"] .rb_hair_reservation_view_box .rb_hair_price_view_head strong,
[data-theme="dark"] .rb_hair_hours_view_head strong,
[data-theme="dark"] .rb_hair_hours_live_summary,
[data-theme="dark"] .rb_hair_hours_compact_list strong,
[data-theme="dark"] .rb_hair_hours_view_list strong,
[data-theme="dark"] .rb_hair_hours_details summary,
[data-theme="dark"] .rb_hair_hours_compact_list .rb_hair_hours_time,
[data-theme="dark"] .rb_hair_hours_view_list .rb_hair_hours_time,
[data-theme="dark"] .rb_hair_hours_meta {
    color: var(--rb-text) !important;
}

[data-theme="dark"] .rb_hair_hours_meta.is_memo {
    color: var(--rb-brand-text) !important;
}

[data-theme="dark"] .rb_hair_hours_compact_list li,
[data-theme="dark"] .rb_hair_hours_view_list li {
    border-color: rgba(255, 255, 255, .18) !important;
    background: rgba(255, 255, 255, .08) !important;
}

[data-theme="dark"] .rb_hair_hours_compact_list li.is_today,
[data-theme="dark"] .rb_hair_hours_view_list li.is_today {
    border-color: rgba(255, 255, 255, .32) !important;
    background: rgba(255, 255, 255, .12) !important;
}

[data-theme="dark"] .rb_hair_hours_compact_list .rb_hair_hours_time,
[data-theme="dark"] .rb_hair_hours_view_list .rb_hair_hours_time {
    border-color: rgba(255, 255, 255, .22) !important;
    background: rgba(255, 255, 255, .08) !important;
}

[data-theme="dark"] .rb_hair_hours_details summary::before {
    color: rgba(255, 255, 255, .72) !important;
}

/* Dark mode readability boost */
[data-theme="dark"] .rb_hair_view_sub,
[data-theme="dark"] .rb_hair_view_notice p,
[data-theme="dark"] .rb_hair_view_info_grid dt,
[data-theme="dark"] .rb_hair_hours_today_note,
[data-theme="dark"] .rb_hair_hours_meta,
[data-theme="dark"] .rb_hair_price_view_empty,
[data-theme="dark"] .rb_hair_services_empty,
[data-theme="dark"] .rb_hair_hours_details summary {
    color: rgba(255, 255, 255, .84) !important;
}

[data-theme="dark"] .rb_hair_view_notice strong,
[data-theme="dark"] .rb_hair_view_info_grid dd,
[data-theme="dark"] .rb_hair_hours_view_head strong,
[data-theme="dark"] .rb_hair_hours_live_summary,
[data-theme="dark"] .rb_hair_hours_compact_list strong,
[data-theme="dark"] .rb_hair_hours_view_list strong,
[data-theme="dark"] .rb_hair_price_view_head strong,
[data-theme="dark"] .rb_hair_price_view_table td.is_name,
[data-theme="dark"] .rb_hair_price_view_table td.is_price,
[data-theme="dark"] .rb_hair_reservation_card_name {
    color: var(--rb-text) !important;
}

[data-theme="dark"] .rb_hair_hours_today_mark {
    border: 1px solid var(--rb-brand) !important;
    background: var(--rb-brand) !important;
    color: var(--rb-text-on-primary) !important;
}

.rb_hair_auto_paging {
    margin: 16px 0 6px;
    text-align: center;
}

.rb_hair_auto_paging .fl_btns {
    min-width: 140px;
}

.rb_hair_auto_paging_status {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--rb-text-muted);
}

[data-theme="dark"] .rb_hair_auto_paging_status {
    color: rgba(255, 255, 255, .78);
}

/* Write data protection and accessible repeatable controls */
.rb_hair_draft_recovery {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg-muted);
}

.rb_hair_draft_recovery[hidden] {
    display: none;
}

.rb_hair_draft_recovery p,
.rb_hair_local_draft_status {
    margin: 0;
    color: var(--rb-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.rb_hair_local_draft_status {
    min-height: 18px;
    margin-top: 6px;
}

.rb_hair_draft_recovery_actions {
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
}

.rb_hair_draft_recovery_actions button,
.rb_hair_price_btn_drag,
.rb_hair_price_btn_move,
.rb_hair_price_btn_del,
.rb_hair_price_btn_add,
.rb_hair_price_btn_bulk,
.rb_hair_hours_apply_btn,
.rb_hair_hours_closed_label span,
.rb_hair_hours_quick_day span,
.rb_hair_step_btn,
.rb_hair_step_move,
.rb_bbs_write_wrap .btn_cancel,
.rb_bbs_write_wrap .btn_submit,
.rb_bbs_write_wrap .au_btn_del,
.nickname-suggest-btn {
    min-height: 44px;
}

.rb_hair_draft_recovery_actions button {
    padding: 0 14px;
    border: 1px solid var(--rb-brand);
    border-radius: 8px;
    background: var(--rb-bg);
    color: var(--rb-brand-text);
    font-weight: 700;
}

.rb_hair_hours_input_field {
    display: block;
    min-width: 0;
}

.rb_hair_hours_input_field .input {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    box-sizing: border-box;
}

.rb_hair_hours_input_label {
    display: none;
}

.rb_hair_price_btn_move {
    display: inline-flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rb-border-strong);
    border-radius: 8px;
    background: var(--rb-bg);
    color: var(--rb-text);
    font-size: 12px;
    font-weight: 700;
}

.rb_hair_price_btn_move:disabled {
    opacity: .42;
    cursor: not-allowed;
}

.rb_bbs_write_wrap .au_btn_del {
    cursor: pointer;
    font: inherit;
}

[data-theme="dark"] .rb_hair_draft_recovery {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
}

[data-theme="dark"] .rb_hair_draft_recovery p,
[data-theme="dark"] .rb_hair_local_draft_status {
    color: var(--rb-text-muted);
}

[data-theme="dark"] .rb_hair_price_btn_move,
[data-theme="dark"] .rb_hair_draft_recovery_actions button {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-elevated);
    color: var(--rb-text);
}

[data-theme="dark"] .rb_hair_price_btn_move {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-elevated);
    color: var(--rb-text);
}

@media all and (min-width: 768px) {
    .rb_hair_price_head,
    .rb_hair_price_row {
        grid-template-columns: 110px minmax(0, 1fr) 230px 220px;
    }
}

@media all and (max-width: 767px) {
    .rb_hair_draft_recovery {
        align-items: stretch;
        flex-direction: column;
    }

    .rb_hair_draft_recovery_actions button {
        flex: 1;
    }

    .rb_hair_hours_editor {
        overflow: hidden;
        padding: 10px;
    }

    .rb_hair_hours_row,
    .rb_hair_hours_quick {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px;
        align-items: end;
    }

    .rb_hair_hours_row {
        padding-bottom: 10px;
        border-bottom: 1px solid var(--rb-hair-palette-line);
    }

    .rb_hair_hours_day {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .rb_hair_hours_open_field {
        grid-column: 2;
        grid-row: 1;
    }

    .rb_hair_hours_close_field {
        grid-column: 3;
        grid-row: 1;
    }

    .rb_hair_hours_break_field {
        grid-column: 2 / -1;
        grid-row: 2;
    }

    .rb_hair_hours_memo_field {
        grid-column: 2 / -1;
        grid-row: 3;
    }

    .rb_hair_hours_closed_label {
        grid-column: 2 / -1;
        grid-row: 4;
    }

    .rb_hair_hours_quick .rb_hair_hours_apply_btn {
        grid-column: 2 / -1;
        grid-row: 5;
    }

    .rb_hair_hours_input_label {
        display: block;
        margin-bottom: 4px;
        color: var(--rb-hair-palette-meta);
        font-size: 11px;
        font-weight: 700;
    }

    .rb_hair_price_controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-wrap: wrap;
    }
}

/* Detail-page hierarchy and theme-safe quick actions */
.rb_hair_view_quality {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    margin-top: 8px;
    color: var(--rb-text-muted);
    font-size: 12px;
}

.rb_hair_view_quality strong {
    display: inline-flex;
    padding: 4px 9px;
    border: 1px solid var(--rb-border);
    border-radius: 999px;
    font-size: 12px;
}

.rb_hair_view_quality--high strong {
    border-color: #a7f3d0;
    background: #ecfdf5;
    color: #047857;
}

.rb_hair_view_quality--mid strong {
    border-color: #fde68a;
    background: #fffbeb;
    color: #b45309;
}

.rb_hair_view_quality--low strong {
    border-color: var(--rb-border);
    background: var(--rb-bg-muted);
    color: var(--rb-text-muted);
}

.rb_hair_view_quality em {
    color: var(--rb-text-faint, var(--rb-text-muted));
    font-style: normal;
}

.rb_hair_quick_actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
    margin: 12px 0 20px;
}

.rb_hair_action_btn {
    display: inline-grid;
    grid-template-rows: auto auto auto;
    align-items: center;
    justify-items: center;
    gap: 4px;
    min-width: 0;
    min-height: 78px;
    padding: 14px 12px;
    border: 1px solid var(--rb-border);
    border-radius: 10px;
    background: var(--rb-bg);
    color: var(--rb-text);
    line-height: 1.3;
    text-decoration: none !important;
    transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.rb_hair_action_btn svg {
    color: var(--rb-text-muted);
}

.rb_hair_action_btn .rb_hair_action_label {
    font-size: 14px;
    font-weight: 700;
}

.rb_hair_action_btn .rb_hair_action_meta {
    overflow: hidden;
    max-width: 100%;
    color: var(--rb-text-muted);
    font-size: 11px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rb_hair_action_btn:focus-visible {
    outline: 3px solid var(--rb-ui-focus-ring);
    outline-offset: 2px;
}

@media (hover: hover) {
    .rb_hair_action_btn:hover {
        border-color: var(--rb-primary);
        background: var(--rb-primary-soft);
        color: var(--rb-primary-strong);
        box-shadow: var(--rb-shadow-sm);
        transform: translateY(-1px);
    }

    .rb_hair_action_btn:hover svg,
    .rb_hair_action_btn:hover .rb_hair_action_meta {
        color: var(--rb-primary-strong);
    }
}

.rb_hair_action_kakao {
    border-color: #f1d900;
    background: #fee500;
    color: #3c1e1e;
}

.rb_hair_action_kakao svg,
.rb_hair_action_kakao .rb_hair_action_meta {
    color: #3c1e1e;
}

@media (hover: hover) {
    .rb_hair_action_kakao:hover {
        border-color: #e8cb00;
        background: #f5d900;
        color: #3c1e1e;
    }

    .rb_hair_action_kakao:hover svg,
    .rb_hair_action_kakao:hover .rb_hair_action_meta {
        color: #3c1e1e;
    }
}

.rb_hair_holiday_badge {
    display: inline-block;
    margin-left: 8px;
    padding: 3px 10px;
    border: 1px solid #fecaca;
    border-radius: 999px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 12px;
    font-weight: 600;
    vertical-align: middle;
}

.rb_hair_view_primary,
.rb_hair_view_primary_media,
.rb_hair_view_primary_summary {
    min-width: 0;
}

.rb_hair_view_primary .rb_hair_photo_viewer {
    margin: 0;
}

@media all and (min-width: 981px) {
    .rb_hair_view_primary {
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
        align-items: start;
        gap: 18px;
        margin: 0 0 20px;
    }

    .rb_hair_view_primary_summary .rb_hair_view_info_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin: 0 0 12px;
    }

    .rb_hair_view_primary_summary .rb_hair_view_info_grid dl {
        padding: 12px;
    }

    .rb_hair_view_primary_summary .rb_hair_hours_view_box {
        margin: 0;
        padding: 14px;
    }

    .rb_hair_view_primary_summary .rb_hair_hours_compact_list,
    .rb_hair_view_primary_summary .rb_hair_hours_view_list {
        grid-template-columns: minmax(0, 1fr);
    }
}

html[data-theme="dark"] .rb_hair_action_btn:not(.rb_hair_action_kakao) {
    border-color: var(--rb-border-strong);
    background: var(--rb-bg-elevated, var(--rb-bg));
    color: var(--rb-text);
}

@media (hover: hover) {
    html[data-theme="dark"] .rb_hair_action_btn:not(.rb_hair_action_kakao):hover {
        border-color: var(--rb-primary);
        background: var(--rb-primary-soft);
        color: var(--rb-primary-strong);
    }
}

html[data-theme="dark"] .rb_hair_view_quality--high strong {
    border-color: rgba(110, 231, 183, .38);
    background: rgba(16, 185, 129, .14);
    color: #6ee7b7;
}

html[data-theme="dark"] .rb_hair_view_quality--mid strong {
    border-color: rgba(252, 211, 77, .38);
    background: rgba(245, 158, 11, .14);
    color: #fcd34d;
}

html[data-theme="dark"] .rb_hair_holiday_badge {
    border-color: rgba(252, 165, 165, .35);
    background: rgba(239, 68, 68, .14);
    color: #fca5a5;
}

@media all and (max-width: 600px) {
    .rb_hair_quick_actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rb_hair_action_btn {
        min-height: 64px;
        padding: 12px 8px;
    }

    .rb_hair_action_btn .rb_hair_action_meta {
        display: none;
    }

    .rb_hair_quick_actions > .rb_hair_action_btn:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rb_hair_action_btn {
        transition: none;
    }

    .rb_hair_action_btn:hover {
        transform: none;
    }
}
