@charset "utf-8";

/* 페이지네이션 css 추가 */
.pagination {
    --bs-pagination-padding-x: 0.75rem;
    --bs-pagination-padding-y: 0.375rem;
    --bs-pagination-font-size: 1rem;
    --bs-pagination-color: var(--bs-link-color);
    --bs-pagination-bg: #fff;
    --bs-pagination-border-width: 1px;
    --bs-pagination-border-color: #dee2e6;
    --bs-pagination-border-radius: 0.375rem;
    --bs-pagination-hover-color: var(--bs-link-hover-color);
    --bs-pagination-hover-bg: #e9ecef;
    --bs-pagination-hover-border-color: #dee2e6;
    --bs-pagination-focus-color: var(--bs-link-hover-color);
    --bs-pagination-focus-bg: #e9ecef;
    --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: #0d6efd;
    --bs-pagination-active-border-color: #0d6efd;
    --bs-pagination-disabled-color: #6c757d;
    --bs-pagination-disabled-bg: #fff;
    --bs-pagination-disabled-border-color: #dee2e6;
    display: flex;
    padding-right: 0;
    list-style: none;
}

.page-link {
    position: relative;
    display: block;
    padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
    font-size: var(--bs-pagination-font-size);
    color: var(--bs-pagination-color);
    text-decoration: none;
    background-color: var(--bs-pagination-bg);
    border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

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

.page-link:hover {
    z-index: 2;
    color: var(--bs-pagination-hover-color);
    background-color: var(--bs-pagination-hover-bg);
    border-color: var(--bs-pagination-hover-border-color);
}

.page-link:focus {
    z-index: 3;
    color: var(--bs-pagination-focus-color);
    background-color: var(--bs-pagination-focus-bg);
    outline: 0;
    box-shadow: var(--bs-pagination-focus-box-shadow);
}

.page-link.active, .active > .page-link {
    z-index: 3;
    color: var(--bs-pagination-active-color);
    background-color: var(--bs-pagination-active-bg);
    border-color: var(--bs-pagination-active-border-color);
}

.page-link.disabled, .disabled > .page-link {
    color: var(--bs-pagination-disabled-color);
    pointer-events: none;
    background-color: var(--bs-pagination-disabled-bg);
    border-color: var(--bs-pagination-disabled-border-color);
}

.page-item:not(:first-child) .page-link {
    margin-right: -1px;
}

.page-item:first-child .page-link {
    border-top-right-radius: var(--bs-pagination-border-radius);
    border-bottom-right-radius: var(--bs-pagination-border-radius);
}

.page-item:last-child .page-link {
    border-top-left-radius: var(--bs-pagination-border-radius);
    border-bottom-left-radius: var(--bs-pagination-border-radius);
}

:root {
    --main-blue: #005bb0;
    --main-red: #ec400a;
    --tag-white: #ffffff;
    --tag-pink: #fee2f8;
    --tag-light-blue: #99ccff;
    --tag-yellow: #ffff00;
    --tag-yellow-green: #99cc33;
    --tag-brown: #993300;
    --tag-warm-pink: #ff9999;
    --tag-red: #ff3300;
    --tag-deep-red: #cc0000;
    --tag-orange: #ff9900;
    --tag-purple: #9d38d3;
    --tag-cyan: #99ffcc;
    --tag-hot-pink: #ff66ff;
    --tag-deep-purple: #780278;
    --tag-beige: #ffcc99;
    --tag-gray: #aeaeae;
    --tag-deep-blue: #1fc1c1;
    --tag-khaki: #666633;
    --tag-deep-yellow: #f6c608;
    --tag-light-khaki: #999933;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"), url("./fonts/Pretendard-Black.woff") format("woff");
    font-weight: 900;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"),
    url("./fonts/Pretendard-ExtraBold.woff") format("woff");
    font-weight: 800;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"), url("./fonts/Pretendard-Bold.woff") format("woff");
    font-weight: 700;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"),
    url("./fonts/Pretendard-SemiBold.woff") format("woff");
    font-weight: 600;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"), url("./fonts/Pretendard-Medium.woff") format("woff");
    font-weight: 500;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"),
    url("./fonts/Pretendard-Regular.woff") format("woff");
    font-weight: 400;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"),
    url("./fonts/Pretendard-ExtraLight.woff") format("woff");
    font-weight: 300;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"), url("./fonts/Pretendard-Light.woff") format("woff");
    font-weight: 200;
    font-display: fallback;
}

@font-face {
    font-family: "Pre";
    src: local("Pretendard"), url("./fonts/Pretendard-Thin.woff") format("woff");
    font-weight: 100;
    font-display: fallback;
}

body {
    width: 100%;
    min-height: 100%;
    height: 100%;
    letter-spacing: normal;
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden;

    background-color: #fff;
    color: #262626;

    font-family: "Pre", sans-serif;
    font-size: .9rem;
    line-height: 1.2;
    font-weight: 400;
}

::-webkit-scrollbar {
    width: 7px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background-color: #fff;
}

::-webkit-scrollbar-thumb {
    background-color: #a4afd4;
    border-radius: 3px;
}

/* Basic */
img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a {
    display: block;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

a:hover {
    text-decoration: none;
    color: inherit;
}

ul,
li {
    list-style: none;
}

input:disabled {
    color: #bcbcbc;
}

input[type="checkbox"] ~ label,
input[type="radio"] ~ label {
    cursor: pointer;
}

textarea {
    overflow: auto;
    resize: none;
    -webkit-appearance: none;
    box-shadow: none;
    -webkit-border-radius: 0;
    border-color: #e3e6f0;
}

textarea:focus {
    outline: none;
}

input[type="date"] {
    padding: 0.375rem 1.5rem 0.375rem 0.75rem;
    color: #6e707e;
    height: calc(1.5em + 0.75rem + 2px);
    vertical-align: middle;
    border: 1px solid #d1d3e2;
    border-radius: 0.35rem;
}

input[type="date"],
input[type="datetime-local"] {
    position: relative;
    background: url("../img/calendar.svg") no-repeat right 11px center / 11px auto;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    color: transparent;
    cursor: pointer;
}

.btn-blue {
    background-color: var(--main-blue) !important;
    color: #fff !important;
}

.all-control-date-button {
    border: none !important;
    padding: 0 !important;
}

.all-control-date-button::-webkit-calendar-picker-indicator {
    background: transparent !important;
    bottom: 0 !important;
    color: transparent !important;
    cursor: pointer !important;
    height: auto !important;
    left: 0 !important;
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    width: auto !important;
}

.text-end {
    text-align: right;
}

.table {
    border-bottom: 1px solid #e3e6f0;
}

.table.table-layout-fixed {
    table-layout: fixed;
}

.table thead th,
.table td {
    vertical-align: middle;
    padding: 0.3rem 0.5rem;
}

.table thead th {
    position: relative;
    z-index: 1;
}

.table thead th:after {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    width: 100%;
    height: 100%;
    z-index: -1;

    outline: 1px solid #e3e6f0;
}

.table:not(.table-bordered) thead th:after {
    display: none;
}

.table.small-padding td,
.table.small-padding th {
    /* padding: 0.725rem 0.375rem; */
    padding: 0.5rem 0.375rem;
}

.table-in-table tr {
    border-bottom: 1px solid #e3e6f0;
}

.table-in-table tr:last-of-type {
    border: none;
}

.fa-xl {
    font-size: 1.5rem;
}

button {
    background: transparent;
    border: none;
}

/* Common */
.color-list {
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;

    margin-right: 0.375rem;
}

.bg-pink {
    background-color: #ffd5cd !important;
}

.text-purple {
    color: #8040ff !important;
}

.text-blue {
    color: #3799f4 !important;
}

/* tab */
.nav-tabs .nav-item > a {
    background-color: rgba(217, 217, 217, 1);
    border-radius: 5px 5px 0 0;
    overflow: hidden;
    border: none;

    padding: 0.75rem 1rem;
}

.nav-tabs .nav-item .nav-link:hover {
    border: none;
}

.nav-tabs .nav-item.active .nav-link {
    background-color: #fff;
    box-shadow: -2px 2px 4px rgb(142 142 142 / 35%);
}

.nav-tabs.flex-column .nav-item .nav-link {
    border-radius: 5px 0 0 5px;
    padding: 1.25rem 1rem;
}

/* input */
input[type="text"] {
    border-radius: 5px;
}

input[type="checkbox"] {
    cursor: pointer;
}

/* 가로스크롤 table */
.scrollme {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.scrollme table {
    white-space: nowrap;
}

/* 세로스크롤 table max-height */
.table-scroll-height.short {
    max-height: 36rem;
}

.table-scroll-height.register {
    height: 30rem;
    overflow-y: auto;
}

/* 세로스크롤 table */
.table-scroll-height {
    overflow-y: auto;
    max-height: 40rem;

    /* padding-right: 0 !important;
    padding-left: 0 !important;

    border: 1px solid #e3e6f0;
    border-right: none; */
}

.table-scroll-height table {
    position: relative;
    margin-bottom: 0 !important;
}

.table-scroll-height thead,
.table-scroll-height tfoot {
    position: sticky;

    z-index: 5;
}

.table-scroll-height thead {
    inset-block-start: 0;
    /* "top" */
}

.table-scroll-height tfoot {
    inset-block-end: 0;
    /* "bottom" */
}

.table-scroll-height.medium-height {
    /* max-height: 25rem; */
    max-height: 27rem;
}

.table-scroll-height.small-height {
    max-height: 12rem;
}

/* check Button */
.check-custom-wrap input[type="checkbox"] {
    display: none;
}

.check-custom-wrap input[type="checkbox"]:checked ~ label .fake-check-box span {
    display: block;
}

.check-custom-wrap .fake-check-box {
    position: relative;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    border: 1px solid;
    background-color: #fff;
    border-radius: 50%;
}

.check-custom-wrap .fake-check-box span {
    display: none;

    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;

    transform: translate(-50%, -50%);
}

/* Radio Button */
.radio-custom-wrap {
    padding-left: 0.5rem;
}

.radio-custom-wrap ~ label {
    cursor: pointer;
}

.radio-custom-wrap input[type="radio"]:checked ~ label {
    background-color: var(--main-blue);
    color: #fff;
}

.radio-custom-wrap input[type="radio"] ~ label {
    background-color: #fff;
}

.radio-custom-wrap input[type="radio"] ~ label:hover {
    background-color: var(--main-blue);
}

.radio-custom-wrap li + li {
    margin-left: 0.375rem;
}

.color-list.red {
    background-color: var(--main-red);
}

.color-list.blue {
    background-color: var(--main-blue);
}

/* color input */
.color-input {
    display: inline-block;
    width: 2rem;
    height: 2rem;
}

.color-input .tag-list {
    height: 100% !important;
}

.color-tag-input-wrap .dropdown-menu {
    width: 17.2rem;
}

.color-tag-input-wrap .dropdown-item {
    width: 3rem;
}

.color-input .tag-list {
    height: 100% !important;
}

.color-tag-input-wrap input {
    width: 3rem;
}

.color-tag-input-wrap .tag-list {
    height: 3rem;
    margin-right: 0;
    border: none;
    outline: 1px solid #222;
}

.setting-color-tag {
    background-color: #fff;
    border: 1px solid;
    padding: 0.3rem;
}

.setting-color-tag li.tag-list {
    width: 3rem;
    margin: 0.3rem;

    cursor: pointer;
}

.tag-list {
    width: 1rem;
    height: 1rem;
    margin-right: 0.375rem;

    border: 1px solid #ddd;
}

.tag-list.white {
    background-color: var(--tag-white);
}

.tag-list.pink {
    background-color: var(--tag-pink);
}

.tag-list.light-blue {
    background-color: var(--tag-light-blue);
}

.tag-list.yellow {
    background-color: var(--tag-yellow);
}

.tag-list.yellow-green {
    background-color: var(--tag-yellow-green);
}

.tag-list.brown {
    background-color: var(--tag-brown);
}

.tag-list.warm-pink {
    background-color: var(--tag-warm-pink);
}

.tag-list.red {
    background-color: var(--tag-red);
}

.tag-list.deep-red {
    background-color: var(--tag-deep-red);
}

.tag-list.orange {
    background-color: var(--tag-orange);
}

.tag-list.purple {
    background-color: var(--tag-purple);
}

.tag-list.cyan {
    background-color: var(--tag-cyan);
}

.tag-list.hot-pink {
    background-color: var(--tag-hot-pink);
}

.tag-list.deep-purple {
    background-color: var(--tag-deep-purple);
}

.tag-list.beige {
    background-color: var(--tag-beige);
}

.tag-list.gray {
    background-color: var(--tag-gray);
}

.tag-list.deep-blue {
    background-color: var(--tag-deep-blue);
}

.tag-list.khaki {
    background-color: var(--tag-khaki);
}

.tag-list.deep-yellow {
    background-color: var(--tag-deep-yellow);
}

.tag-list.light-khaki {
    background-color: var(--tag-light-khaki);
}

/* 회원정보 section */
.user-info-section .card-body {
    padding: 0.375rem 1rem;
}

.user-info-section .customer-number {
    margin-right: 0.375rem;
}

.user-info-section .table td,
.user-info-section .table th {
    /* padding: 0.375rem; */
    padding: 0.15rem 0.5rem;
}

.user-info-section .new-customer-button {
    margin-right: 0.375rem;
}

.user-info-section .select-box-wrap {
    flex: 1;
}

.user-info-section .select-box-wrap:last-child {
    margin-left: 0.375rem;
}

.user-info-section label {
    flex-shrink: 0;
}

/* Modal */
.modal-sub-title {
    font-size: 1.3rem;
}

/* Modal - 숫자입력 */
.calculator-modal .number-list button {
    width: 32.3%;
}

.calculator-modal .number-list button:nth-child(n + 4) {
    margin-top: 0.375rem;
}

/* Modal - 접수증 출력 / 세탁물 출고 모달 */
.register-complete-modal .btn-close {
    position: absolute;
    top: 1.2rem;
    right: 1.5rem;
    z-index: 10;

    border-radius: 50%;
}

.register-complete-modal input[type="text"] {
    width: 10rem;
}

/* Toast - 화면 가운데 크게 */
#toast-container .toast {
    min-width: 350px;
    font-size: 1.25rem;
    font-weight: 600;
    text-align: center;
    background-color: rgba(33, 37, 41, 0.95);
    color: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

#toast-container .toast-body {
    padding: 1.5rem 2rem;
    /* [줄바꿈 렌더] showToast 가 textContent 로 주입하므로 "\n" 을 <br> 로 바꾸려면 CSS 제어가 필요하다.
       pre-line 은 공백은 병합하되 개행은 유지 — 사용자 친화 에러 메시지("[출고처리 오류]\n{사유}")를
       여러 줄로 보여준다. 기존 한 줄 토스트에는 영향 없음. */
    white-space: pre-line;
}

/* Modal - 고객조회 모달 (화면 거의 꽉 차게) */
.customer-search-modal .modal-dialog {
    max-width: 95vw;
}

/* 캘린더 일정등록의 접수내역·고객검색 모달은 컬럼 수가 적어(접수내역 6컬럼, 고객검색 검색폼)
   95vw 가 과하게 넓다. 같은 요소에 modal-narrow 를 함께 부여한 경우에만 720px 로 좁힌다.
   .customer-search-modal.modal-narrow 는 위 95vw 규칙과 동일 specificity 이지만 뒤에 선언되어 우선 적용된다.
   고객조회(9컬럼) 등 modal-narrow 가 없는 다른 사용처는 기존 95vw 유지. */
.customer-search-modal.modal-narrow .modal-dialog {
    max-width: 720px;
}

.customer-search-modal .modal-body {
    max-height: 70vh;
    overflow-y: auto;
}

.customer-search-modal table {
    font-size: 1.1rem;
}

.customer-search-modal table td {
    padding: 0.5rem;
}

.customer-search-modal table th {
    padding: 0.5rem;
    font-size: 1.1rem;
}

/* click able table */
.click-able-table tr,
.click-able-table-just-one tr {
    cursor: pointer;
}

.click-able-table tr.active,
.click-able-table-just-one tr.active {
    background-color: var(--disabled-color) !important;
}

/* radio */
.util-radio-wrap input[type="radio"]:checked ~ label {
    background-color: var(--main-blue);
    color: #fff;
}

.util-radio-wrap input[type="radio"] ~ label {
    background-color: #fff;
}

.util-radio-wrap input[type="radio"] ~ label:hover {
    background-color: var(--main-blue);
}

.util-radio-wrap li:first-child label {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.util-radio-wrap li:last-child label {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

/* Header */
header .custom-select {
    margin-right: 0.3rem;
}

header a.nav-link {
    padding: 0.5rem 2rem !important;
}

.topbar .navbar-search {
    width: 29rem;
}

/* calendar 캘린더 */
.fc table,
.fc th,
.fc td {
    border: none !important;
}

.fc thead .fc-col-header-cell {
    padding: 0.75rem 0;
}

.fc .fc-daygrid-day-number {
    color: #222;
}

.fc .fc-day a {
    cursor: unset;
}

.fc .fc-day-sat .fc-col-header-cell-cushion,
.fc .fc-day-sat .fc-daygrid-day-number {
    color: var(--main-blue);
}

.fc .fc-day-sun .fc-col-header-cell-cushion,
.fc .fc-day-sun .fc-daygrid-day-number {
    color: var(--main-red);
}

.fc .fc-daygrid-day-top {
    justify-content: center;
}

.fc .fc-daygrid-day-number {
    font-size: 1.2rem;
}

.fc .fc-button-primary {
    background-color: var(--main-blue);
    opacity: 1;
    border: none;
}

.fc .fc-button-primary:hover {
    background-color: var(--main-blue);
    opacity: 0.8;
}

.fc-day-sun .fc-daygrid-day-top .font-weight-bold {
    color: var(--main-red);
}

.fc-day-sat .fc-daygrid-day-top .font-weight-bold {
    color: var(--main-blue);
}

/* ============ center-title ============ */
.center-title {
    position: absolute;
    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);
}

/* ============ Login Page ============ */
.login-page .layout-wrap {
    height: 100vh;
}

/* ============ Main Page ============ */
.main-page .fc .fc-toolbar-title {
    font-size: 1.8rem;
    font-weight: bold;
}

.main-page .fc-daygrid-day-events {
    display: none;
}

.main-page .fc .fc-daygrid-day-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.main-page .table-scroll-height.top-table {
    /* max-height: 23rem; */
    max-height: 20rem;
}

/* ============ Register Page ============ */
/*
 * 접수페이지 topbar 검색폼 폭 확장.
 *
 * 배경: 전역 .topbar .navbar-search는 29rem 고정이다(위 833라인 참조).
 *       접수페이지만 '최근 가입 고객 10명' 버튼이 추가되면서
 *       select + input-group + 고객초기화 + 신규버튼 4개가 29rem 안에 들어가지 못해
 *       검색어 입력창(input-group)이 극단적으로 좁아졌다.
 * 선택 사유: 전역 값을 키우면 inquiry/check/shipment 등 .topbar .navbar-search를
 *           공유하는 다른 페이지가 모두 영향을 받으므로, .register-page 스코프로만 한정 확장한다.
 *           .register-page 클래스는 이 페이지의 #content-wrapper에만 붙어 있어 사이드이펙트 없음.
 * 값 근거: 신규 버튼(텍스트 '최근 가입 고객 10명' + ms-2 margin) 실측 대비 여유 포함 +10rem.
 */
.register-page .topbar .navbar-search {
    width: 39rem;
}

.register-page .tag-table th,
.register-page .tag-table td {
    padding: 0.15rem 0.375rem;
}

.register-page .button-list-wrap li {
    width: 13.9%;
}

.register-page .button-list-wrap li:not(:nth-child(7n + 1)) {
    margin-left: 0.3rem;
}

.register-page .button-list-wrap li:nth-child(n + 8) {
    margin-top: 0.375rem;
}

.register-page .all-date-setting-input input[type="date"] {
    position: relative;
    font-size: 0;
    border: none;

    width: 2rem;
    height: 2rem;

    margin: 0 auto;
    padding: 0;

    background: url("../img/calendar.svg") no-repeat center center / 1.3rem auto;
}

/* ============ shipment-page ============ */
.shipment-page .table-scroll-height {
    max-height: 37rem;
}

/* ============ inquiry-page(조회) AI 문의 버튼 추가 검색폼 ============ */
/*
 * 조회페이지 topbar 검색폼 폭 확장.
 *
 * 배경: 전역 .topbar .navbar-search 는 29rem 고정이다(위 845라인 참조).
 *       조회페이지 상단 헤더 검색폼에 'AI 문의' 버튼을 추가하면서
 *       select + input-group + 고객초기화 + AI 문의 4개가 29rem 안에 들어가지 못해
 *       검색어 입력창(input-group)이 좁아진다(register-page 와 동일 사례).
 * 선택 사유: 전역 값을 키우면 check/shipment 등 .topbar .navbar-search 를 공유하는
 *           다른 페이지가 모두 영향을 받는다. 또한 .inquiry-page 클래스는 조회(inquiry)뿐
 *           아니라 리페어관리(repair-management) 등도 공유하므로 .inquiry-page 스코프만으로는
 *           AI 문의 버튼이 없는 페이지의 검색폼까지 넓어진다. 따라서 AI 문의 버튼이 실제로
 *           들어간 조회 검색폼에만 부여한 마커 클래스(.ai-inquiry-search)로 한정한다.
 *           (.topbar .navbar-search = 클래스 2개보다 specificity 가 높아 전역값을 덮는다.)
 * 값 근거: 추가 버튼('AI 문의' + ms-2 margin) 실측 대비 여유 포함 +6rem.
 */
.topbar .navbar-search.ai-inquiry-search {
    width: 35rem;
}

/* ============ check Page ============ */
.check-page .filter-label,
.inquiry-page .filter-label {
    width: 8rem;
    margin-right: 0;
}

.check-page input[type="date"],
.inquiry-page input[type="date"] {
    /* width: 10rem; */
    width: 100%;
}

.check-page .table-scroll-height {
    max-height: 33rem;
}

.show-check-photo-modal .img-wrap {
    height: 15rem;
    border: 1px solid #e3e6f0;
}

/* ============ checklist-inquiry-page ============ */
.checklist-inquiry-page .table-scroll-height {
    max-height: 35rem;
}

/* ============ inquiry Page ============ */

.inquiry-table {
    /* table-layout: fixed; */
}

.inquiry-table td,
.inquiry-table th,
.inquiry-table th span {
    word-break: break-all;
}

.inquiry-page .input-width-size {
    /* width: 6rem; */
    width: 100%;
}

.content-mode-btn-list {
    display: none;
}

.edit-mode-content {
    display: none;
}

.date.edit-mode-content {
    display: none;
}

.edit-mode-table .edit-mode-content {
    display: inline-block;
}

.edit-mode-table .date.edit-mode-content {
    display: flex;
}

.edit-mode-table .see-mode-content {
    display: none;
}

.edit-mode-table thead th {
    width: 8rem;
}

.edit-mode-table {
    table-layout: auto;
}

.inquiry-page .table-scroll-height.medium-height {
    max-height: 32rem;
}

.inquiry-page .inquiry-table tr th:nth-child(1) {
    width: 12rem;
}

.inquiry-page .inquiry-table .custom-select {
    /* width: 8rem; */
    width: 100%;
}

.change-charge-modal textarea {
    height: 10rem;
}

/* ============ receipt-print-page Page ============ */

/*
 * 영수증(롤 용지) 인쇄 전용 — <body class="receipt-print-body">
 * 전역 body { height: 100%; min-height: 100% }가 인쇄 시 페이지 전체를 채워
 * 하단 여백이 과도해지는 문제를 해제한다.
 * 적용 대상: receipt_print.html, receipt_print_save_only.html, receipt_print_preview.html
 */
html:has(> body.receipt-print-body),
body.receipt-print-body {
    width: 8.5cm;
    height: auto;
    min-height: auto;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

@media print {
    html:has(> body.receipt-print-body) {
        height: auto;
        min-height: auto;
    }

    body.receipt-print-body {
        height: auto;
        min-height: auto;
        margin: 0;
        padding: 0.5cm;
        box-sizing: border-box;
    }
}

.receipt-print-page .receipt-head {
    flex-shrink: 0;
    width: 3.5rem;
}

.receipt-print-page .receipt-content {
    overflow-wrap: break-word;
}

.receipt-print-page .receipt-img-wrap {
    height: 100vh;
}

.receipt-print-page .receipt-img-wrap img {
    object-fit: contain;
}

.receipt-print-page .button-wrap {
    position: fixed;
    width: 100%;
    top: 1rem;
    left: 0;

    padding: 0 3rem;
    z-index: 10;
}

/* ============ Calendar Page ============ */
.calendar-page .check-list label {
    line-height: 2.3;
}

.calendar-page .nav-calendar.fc .fc-toolbar-title {
    font-size: 1.2rem;
    font-weight: bold;
}

.calendar-page .nav-calendar.fc .fc-daygrid-day-events {
    display: none;
}

.calendar-page .nav-calendar.fc .fc-daygrid-day.fc-day-today {
    background: transparent;
}

.calendar-page .nav-calendar.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    position: relative;
    color: #fff;
}

.calendar-page .nav-calendar.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number:after {
    position: absolute;
    top: 50%;
    left: 50%;
    content: "";
    width: 2.1rem;
    height: 2.1rem;
    background: var(--main-blue);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
}

.calendar-page .main-calendar.fc .fc-button-group button {
    background: #fff;
    color: var(--main-blue);
    border: 1px solid var(--main-blue);
}

.calendar-page .main-calendar.fc .fc-button-group button.fc-button-active {
    background: var(--main-blue);
    color: #fff;
}

.calendar-page .main-calendar.fc .fc-toolbar-title {
    font-size: 1.8rem;
    font-weight: bold;
}

.calendar-page .main-calendar .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) > div {
    display: flex;
    align-items: center;
}

.calendar-page .main-calendar .fc-toolbar-title {
    margin: 0 1rem;
}

.calendar-page .main-calendar.fc .fc-daygrid-day.fc-day-today {
    background: #f3f6ff;
}

.calendar-page .calendar-dot {
    min-width: 20rem;
}

.calendar-page .event-list {
    padding: 0 0.5rem;

    cursor: pointer;
}

.calendar-page .fc-daygrid-more-link {
    text-align: right;
    cursor: pointer !important;
}

.calendar-page .table-scroll-height {
    max-height: 18rem;
}

.calendar-page .calendar-desk-circle {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
}

.calendar-page .custom-view .table {
    font-size: 1rem !important;
}

.calendar-page .custom-view .table th,
.calendar-page .custom-view .table td {
    border: 1px solid #e3e6f0 !important;
}

.calendar-page .custom-view .table th,
.calendar-page .custom-view .table td {
    padding: 0.75rem;
}

.calendar-page .fc-popover .calendar-work-content {
    display: none;
}

.calendar-page .fc .fc-popover {
    z-index: 1041;
}

/* ============ .receiving_n_forwarding_status Page ============ */
.receiving-n-forwarding-status-page .date-text {
    font-size: 0.9rem;
}

/* ============ factory_forwarding Page ============ */
.factory-forwarding-page .desk-select {
    width: 200px;
}

.factory-forwarding-page .table-scroll-height.small-height {
    max-height: 16.5rem;
}

.factory-forwarding-page .desk-input {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.5rem;
    border: 1px solid #e3e6f0;
    border-radius: 0.35rem;
    color: #6e707e;
    font-size: 0.875em;
}

/*============  desk-to-factory-list-page ============ */
/* .desk-to-factory-list-page .center-title {
  top: 50%;
  left: 50%;

  transform: translate(-50%, -50%);
} */
.desk-to-factory-list-page .table-scroll-height {
    max-height: 20rem;
}

.desk-to-factory-list-page .table-scroll-height.long-height {
    max-height: 40rem;
}

.desk-to-factory-list-page .table-scroll-height.long-height-01 {
    max-height: 36rem;
}

/*============  factory-to-desk-receive-status-page ============ */
.factory-to-desk-receive-status-page .table-scroll-height {
    max-height: 43rem;
}

/*============ laundry-warehousing-request-page ============ */

.laundry-warehousing-request-page .item-select-check-box-wrap input[type="checkbox"] ~ label {
    cursor: pointer;
}

.laundry-warehousing-request-page .item-select-check-box-wrap input[type="checkbox"]:checked ~ label {
    background: #ddf0f6;
}

.laundry-warehousing-request-page .table-scroll-height.very-small-height {
    max-height: 8rem;
}

/*============ product-management-page ============ */
.product-management-page .table-scroll-height {
    max-height: 37rem;
}

.product-management-page .item-select-check-box-wrap input[type="checkbox"] ~ label {
    cursor: pointer;
}

.product-management-page .item-select-check-box-wrap input[type="checkbox"]:checked ~ label {
    background: #ddf0f6;
}

.product-management-page .table-scroll-height.very_short {
    max-height: 20rem;
}

/*============ desk-to-factory-request-page ============ */
.new-request-label-modal .label-width {
    width: 9rem;
}

/*============  sms_management page ============*/
.sms-management-page .phone-img {
    width: 19rem !important;
}

.sms-management-page .top-box {
    position: absolute;
    top: 6.25rem;
    left: 1.125rem;
    width: 90%;
    /*height: 22.5rem;*/
    max-height: 22.875rem;

    overflow: auto;
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
}

.sms-management-page .top-box::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari, Opera*/
}

.sms-management-page .top-box textarea {
    width: 100%;
    height: 39.875rem;
    border: none;
    background: none;
    overflow-y: auto;
}

.sms-management-page .bottom-box {
    position: absolute;
    left: 2.5rem;
    bottom: 5.625rem;
}

/* product-management page */
.product-management-page .button-list-wrap li {
    width: 18%;
    margin: 0.2rem;
    text-align: left;
}

.product-management-page .button-list-wrap li input {
    width: 87%;
}

/* 
.product-management-page .button-list-wrap li:not(:nth-child(7n + 1)) {
  margin-left: 0.3rem;
}

.product-management-page .button-list-wrap li:nth-child(n + 8) {
  margin-top: 0.375rem;
} */

/* outstanding-amount-management-page */
.outstanding-amount-management-page .outstanding-left-table {
    max-height: 28rem;
}

.outstanding-amount-management-page .outstanding-right-table {
    max-height: 27rem;
}

/* 실험 */
/* 
.exmp-wrp {
  position: relative;
  width: 100px;
}

.exmp-wrp input[type="date"] {
  border: none;
  padding: 0;
  font-size: 0;
}

.btn-wrp {
  position: relative;
  z-index: 10;
}

.btn-clck {
  border: none;
  background: transparent;
  width: 100%;
  padding: 10px;
}

.btn-clck::-webkit-calendar-picker-indicator {
  right: -10px;
  position: absolute;
  width: 78px;
  height: 40px;
  color: rgba(204, 204, 204, 0);
  opacity: 0;
}

.btn-clck::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
}
.btn-clck::-webkit-clear-button {
  margin-right: 75px;
}
.all-date-setting-button {
  height: 100%;
  background: #fda200;
  border: none;
  color: #fff;
  padding: 13px;
  position: absolute;
  right: 0;
  top: 0;
} */

.navbar-dark .navbar-nav .nav-link,
.navbar-expand-lg .navbar-nav .dropdown-menu {
    font-size: 17px !important;
}

/*============  datePicker ============*/
.date {
    display: flex;
    align-items: center;
}

.all-date-setting-input {
    justify-content: center;
}

.all-date-setting-input input {
    display: none;
}

input[id^="datePicker"] {
    width: 10rem;
    cursor: pointer;
}

.ui-datepicker-trigger {
    width: 1.4rem;
    cursor: pointer;
}

#ui-datepicker-div {
    z-index: 5 !important;
}

/* ============ check-table-page ============ */
.check-table-page td {
    position: relative;
}

.check-table-page .color-name-title {
    cursor: pointer;
}

.check-table-page .setting-color-tag {
    position: absolute;
    top: 90%;
    left: 20%;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease-in-out;

    width: 14.9rem;
}

.check-table-page .setting-color-tag.on {
    opacity: 1;
    visibility: visible;
}

.check-table-page .setting-color-tag li.tag-list {
    width: 2rem;
    height: 2rem;
    margin: 0;
}

/* ============ add-schedule-modal ============ */
.ellipsis-text {
    text-overflow: ellipsis;
    overflow: hidden;
}

.edit-mode-table .ellipsis-text-6 {
    display: inline-block;
    max-width: 60%;
    text-overflow: ellipsis;
    overflow: hidden;
}

.ellipsis-table {
    table-layout: fixed;
}

.ellipsis-table th,
.ellipsis-table td {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.product-tag-class-input-real {
    width: 80%;
}

.ws-nowrap {
    white-space: nowrap;
}

.btn-group-lg > .btn,
.btn-lg {
    font-size: 1.1rem;
}

.position-relative .btn-done {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.search-result-table-wrap .card-body {
    width: 100%;
    padding: 0;
}

.search-result-table-wrap .card-body .col,
.search-result-table-wrap .card-body .col table {
    padding: 0;
}

.color-chart-wrap {
    flex-wrap: wrap;
    gap: 23px;
    max-height: 400px;
    overflow-y: auto;
}

.color-chart-wrap .dropdown-item {
    width: 55px;
    height: 55px;
}

.color-chart-wrap .dropdown-item .tag-list {
    width: 100%;
    height: 100%;
    margin-right: 0;
}

/* ===== 태블릿 대응 (가로모드 ~1024px, 세로모드 ~768px) ===== */

/* 태블릿 가로모드: 네비게이션 항목 축소 + 래핑 */
@media (min-width: 992px) and (max-width: 1279px) {
    .navbar-nav {
        flex-wrap: wrap !important;
    }

    .navbar-nav .nav-link {
        font-size: 0.78rem;
        padding-left: 0.35rem;
        padding-right: 0.35rem;
    }

    .navbar-nav .dropdown-toggle::after {
        margin-left: 0.15rem;
    }
}

/* 태블릿 세로모드: 네비게이션을 축소 가로 래핑으로 유지 */
@media (max-width: 991px) {
    .navbar .navbar-collapse {
        display: flex !important;
        flex-basis: 100%;
    }

    .navbar-nav {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: center;
    }

    .navbar-nav .nav-link {
        font-size: 0.72rem;
        padding: 0.3rem 0.3rem;
    }

    .navbar-nav .dropdown-menu {
        position: absolute;
    }
}

/* 태블릿 공통: 카드/섹션 패딩 축소 */
@media screen and (max-width: 1279px) {
    .card-body {
        padding: 0.75rem;
    }

    .container-fluid {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* 테이블 텍스트 축소 */
    .table td, .table th {
        font-size: 0.82rem;
        padding: 0.3rem 0.4rem;
    }
}