@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700&display=swap');
@import url('https://cdn.rawgit.com/moonspam/NanumSquare/master/nanumsquare.css');

/* ============================================================
   SCDream Font Face
============================================================ */
@font-face {
    font-family: 'SCDream';
    font-weight: 100;
    font-style: normal;
    src: url('/resources/fonts/SCDream1.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 200;
    font-style: normal;
    src: url('/resources/fonts/SCDream2.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 300;
    font-style: normal;
    src: url('/resources/fonts/SCDream3.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 400;
    font-style: normal;
    src: url('/resources/fonts/SCDream4.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 500;
    font-style: normal;
    src: url('/resources/fonts/SCDream5.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 600;
    font-style: normal;
    src: url('/resources/fonts/SCDream6.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 700;
    font-style: normal;
    src: url('/resources/fonts/SCDream7.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 800;
    font-style: normal;
    src: url('/resources/fonts/SCDream8.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

@font-face {
    font-family: 'SCDream';
    font-weight: 900;
    font-style: normal;
    src: url('/resources/fonts/SCDream9.otf') format('opentype');
    unicode-range: U+0020-U+007E, U+1100-U+11F9, U+3131-U+318E, U+AC00-U+D7A3;
}

/* ============================================================
   Design Tokens - A Type
============================================================ */
:root {
    /* Brand */
    --brand-primary: #7C6650;
    --brand-hover: #64513F;
    --brand-light: #F3EEE7;
    --brand-accent: #8A9A86;

    /* Layout */
    --sidebar-width: 260px;
    --header-height: 68px;

    /* Sidebar */
    --sidebar-bg: #2A241F;
    --sidebar-bg-2: #332C26;
    --sidebar-text: #BEB2A4;
    --sidebar-text-on: #F7F3ED;
    --sidebar-border: rgba(247, 243, 237, 0.08);

    /* Header / Surface */
    --header-bg: #FEFCF8;
    --header-border: #E7DED4;
    --surface-bg: #F7F4EF;
    --surface-card: #FEFCF8;
    --surface-card-soft: #FBF8F3;
    --surface-border: #E5DDD2;
    --surface-hover: #F3EEE7;

    /* Text */
    --text-primary: #2F2A26;
    --text-secondary: #6F675F;
    --text-muted: #9A9085;
    --text-white: #FFFFFF;

    /* Table */
    --table-head-bg: #4A4037;
    --table-head-text: #FFFDF9;
    --table-row-alt: #FBF8F3;
    --table-border: #E5DDD2;
    --table-hover: #F5F0E8;
    --table-th-soft: #F5EFE7;
    --table-th-soft-2: #EEE7DD;

    /* Inputs */
    --input-bg: #FEFCF8;
    --input-border: #D8CDC0;
    --input-focus: #7C6650;
    --input-h: 38px;

    /* Status */
    --status-success: #6E7C68;
    --status-warning: #9A7A52;
    --status-danger: #A56657;
    --status-info: #7E8C87;

    /* Tags */
    --tag-individual: #8A6F50;
    --tag-couple: #8B756A;
    --tag-family: #73806E;
    --tag-joint: #9A7854;

    /* Radius */
    --radius-xs: 2px;
    --radius-sm: 3px;
    --radius-md: 4px;
    --radius-lg: 5px;
    --radius-xl: 6px;

    /* Shadow */
    --shadow-sm: 0 1px 2px rgba(47, 42, 38, 0.04);
    --shadow-md: 0 4px 10px rgba(47, 42, 38, 0.05);
    --shadow-lg: 0 8px 20px rgba(47, 42, 38, 0.06);

    /* Transition */
    --trs-fast: .15s ease;
    --trs-base: .2s ease;
    --trs-slow: .28s ease;
}

/* ============================================================
   Reset & Base
============================================================ */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 0.625em;
    scroll-behavior: smooth;
}

body {
    font-family: 'SCDream', 'nanumsquare', 'Noto Sans KR', sans-serif;
    font-size: 1.5rem;
    color: var(--text-primary);
    background: var(--surface-bg);
    line-height: 1.55;
    letter-spacing: -0.01em;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

ul,
ol {
    list-style: none;
}

hr {
    display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    font-weight: 700;
    color: inherit;
}

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

b,
strong {
    font-weight: 700;
}

label {
    cursor: pointer;
}

img {
    border: none;
    max-width: 100%;
    -webkit-user-drag: none;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}

table {
    width: 100%;
    border-spacing: 0;
    table-layout: fixed;
    border-collapse: collapse;
}

caption,
figcaption {
    visibility: hidden;
    overflow: hidden;
    width: 0;
    height: 0;
    font-size: 0;
    line-height: 0;
}

.clear::after {
    content: "";
    display: block;
    clear: both;
}

.blind {
    position: absolute;
    top: -9999px;
    left: -9999px;
}

::selection {
    color: #FFFDF9;
    background: rgba(124, 102, 80, 0.82);
}

/* Scrollbar */
::-webkit-scrollbar {
    display: none;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #C9BCAF;
    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: #B8A999;
}

/* ============================================================
   Form Elements
============================================================ */
input,
textarea,
select,
button {
    font-family: 'SCDream', 'nanumsquare', 'Noto Sans KR', sans-serif;
    font-size: 1.3rem;
    appearance: none;
    -webkit-appearance: none;
}

input::placeholder,
textarea::placeholder {
    color: var(--text-muted);
}

input[type="radio"]:checked,
input[type="checkbox"]:checked {
    appearance: auto;
    -webkit-appearance: auto;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

input:not([type="radio"]):not([type="checkbox"]),
select,
textarea {
    height: var(--input-h);
    padding: 0 12px;
    font-size: 1.32rem;
    color: var(--text-primary);
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    transition: border-color var(--trs-base), box-shadow var(--trs-base), background var(--trs-base);
}

textarea {
    height: auto;
    min-height: 100px;
    padding: 12px;
    resize: vertical;
    line-height: 1.55;
}

input:not([type="radio"]):not([type="checkbox"]):focus,
select:focus,
textarea:focus {
    outline: none;
    background: #FFFFFF;
    border-color: var(--input-focus);
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.10);
}

select {
    padding-right: 36px;
    background: var(--input-bg) url(/resources/images/icon-select-arrow.png) no-repeat calc(100% - 12px) 50% / 12px !important;
    width: 120px;
}

.check-box {
    position: relative;
    width: 17px !important;
    height: 17px !important;
    vertical-align: middle;
    cursor: pointer !important;
    background: var(--input-bg);
    border: 1px solid var(--input-border) !important;
    border-radius: 2px;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: background var(--trs-fast), border-color var(--trs-fast), box-shadow var(--trs-fast);
}

.check-box:hover {
    border-color: rgba(124, 102, 80, 0.42) !important;
}

.check-box:checked {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
}

.check-box:checked::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #FFFDF9;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.check-box:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.12);
}

input[type="checkbox"] {
    width: 17px;
    height: 17px;
    cursor: pointer;
    border-radius: 2px;
    accent-color: var(--brand-primary);
}

input[type="radio"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    border: solid 1px var(--input-border);
    border-radius: 50%;
    accent-color: var(--brand-primary);
}

input:disabled,
select:disabled,
textarea:disabled,
button:disabled {
    cursor: not-allowed;
    opacity: .72;
}

/* ============================================================
   Button System
============================================================ */
.btn-primary,
.btn-add,
.btn-src,
.btn-write,
.logInner .login-form .btn-login,
.co-area .co-tit-group button,
.main-wrap .tit-wrap .btn-modi-available,
.src-lower-wrap button,
.opr-fee .btn-wrap button,
#quick-memo-group .btn-save,
#quick-memo-group .btn-write,
#quick-links .btn-memo,
header .hd-sc .btn-src-wrap .btn-src-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #FFFDF9;
    background: var(--brand-primary);
    border: 1px solid rgba(124, 102, 80, 0.22);
    border-radius: var(--radius-md);
    box-shadow: 0 3px 8px rgba(124, 102, 80, 0.10);
    transition: background var(--trs-base), box-shadow var(--trs-base), border-color var(--trs-base), transform var(--trs-fast);
}

.btn-primary:hover,
.btn-add:hover,
.btn-src:hover,
.btn-write:hover,
.logInner .login-form .btn-login:hover,
.co-area .co-tit-group button:hover,
.main-wrap .tit-wrap .btn-modi-available:hover,
.src-lower-wrap button:hover,
.opr-fee .btn-wrap button:hover,
#quick-memo-group .btn-save:hover,
#quick-memo-group .btn-write:hover,
#quick-links .btn-memo:hover,
header .hd-sc .btn-src-wrap .btn-src-submit:hover {
    background: var(--brand-hover);
    border-color: rgba(100, 81, 63, 0.28);
    box-shadow: 0 5px 12px rgba(100, 81, 63, 0.12);
}

.btn-primary:active,
.btn-write:active,
.logInner .login-form .btn-login:active {
    transform: translateY(1px);
}

.btn-primary {
    height: 40px;
    padding: 0 20px;
    font-size: 1.5rem;
    font-weight: 600;
}

.btn-add {
    height: 40px;
    padding: 0 18px;
    font-size: 1.5rem;
    font-weight: 600;
}

.btn-src {
    height: 36px;
    padding: 0 18px;
    font-size: 1.3rem;
    font-weight: 600;
    margin-left: 6px;
    vertical-align: middle;
}

.btn-src.btn-filter-reset {
    color: #5b4636;
    background: #f5eee6;
    border-color: rgba(157, 132, 105, 0.26);
    box-shadow: none;
}

.btn-src.btn-filter-reset:hover {
    background: #efe3d7;
    border-color: rgba(139, 114, 89, 0.3);
    box-shadow: 0 4px 10px rgba(139, 114, 89, 0.10);
}

.filter-action-row {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.filter-action-row .btn-filter-reset {
    margin-left: auto;
}

/* 검색 영역 input 일관성 */
.src-upper-wrap input[type="month"],
.src-upper-wrap input[type="date"],
.src-upper-wrap input[type="text"],
.src-upper-wrap select {
    height: 36px;
    padding: 0 10px;
    font-size: 1.28rem;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    background: var(--input-bg);
    color: var(--text-primary);
    vertical-align: middle;
}
.src-upper-wrap input:focus,
.src-upper-wrap select:focus {
    outline: none;
    border-color: var(--input-focus);
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.12);
}

.btn-write {
    height: 44px;
    padding: 0 28px;
    font-size: 1.5rem;
    font-weight: 700;
}

.btn-delete {
    height: 40px;
    padding: 0 18px;
    font-size: 1.5rem;
    font-weight: 600;
    color: #FFFDF9;
    background: var(--status-danger);
    border: 1px solid rgba(165, 102, 87, 0.24);
    border-radius: var(--radius-md);
    box-shadow: 0 3px 8px rgba(165, 102, 87, 0.10);
    transition: background var(--trs-base), box-shadow var(--trs-base), border-color var(--trs-base);
}

.btn-delete:hover {
    background: #915648;
    box-shadow: 0 5px 12px rgba(145, 86, 72, 0.14);
}

.btn-change {
    height: 40px;
    padding: 0 18px;
    font-size: 1.5rem;
    font-weight: 600;
    color: #FFFDF9;
    background: var(--status-warning);
    border: 1px solid rgba(154, 122, 82, 0.24);
    border-radius: var(--radius-md);
    box-shadow: 0 3px 8px rgba(154, 122, 82, 0.10);
    transition: background var(--trs-base), box-shadow var(--trs-base), border-color var(--trs-base);
}

.btn-change:hover {
    background: #826545;
    box-shadow: 0 5px 12px rgba(130, 101, 69, 0.14);
}

.btn-excel,
.btn-print {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #FFFDF9;
    background: var(--status-success);
    border: 1px solid rgba(110, 124, 104, 0.24);
    border-radius: var(--radius-md);
    box-shadow: 0 3px 8px rgba(110, 124, 104, 0.10);
    transition: background var(--trs-base), box-shadow var(--trs-base), border-color var(--trs-base);
}

.btn-excel {
    height: 36px;
    padding: 0 16px;
    font-size: 1.3rem;
    font-weight: 600;
}

.btn-print {
    min-width: 58px;
    height: 28px;
    padding: 0 10px;
    margin-top: 3px;
    font-size: 1.18rem;
    font-weight: 700;
}

.btn-excel:hover,
.btn-print:hover {
    background: #5E6B59;
}

.btn-excel img {
    width: 16px;
}

.btn-replace,
.coc-group .address .btn-src-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--status-info);
    border: 1px solid rgba(126, 140, 135, 0.24);
    border-radius: var(--radius-md);
    box-shadow: 0 3px 8px rgba(126, 140, 135, 0.10);
    color: #FFFDF9;
    transition: background var(--trs-base), box-shadow var(--trs-base), border-color var(--trs-base);
}

.btn-replace {
    min-width: 58px;
    height: 28px;
    padding: 0 10px;
    margin-top: 3px;
    font-size: 1.18rem;
    font-weight: 700;
}

.coc-group .address .btn-src-code {
    margin-left: 6px;
    height: 36px;
    padding: 0 16px;
    font-size: 1.3rem;
    font-weight: 700;
}

.btn-replace:hover,
.coc-group .address .btn-src-code:hover {
    background: #6C7975;
}

.btn-replace[style*="FF6666"],
.btn-replace[style*="ff6666"] {
    background: var(--status-danger) !important;
    border-color: rgba(165, 102, 87, 0.24) !important;
    box-shadow: 0 3px 8px rgba(165, 102, 87, 0.10) !important;
}

.btn-secondary,
.btn-outline,
.sale-wrap table td .btn-chk,
#fee-over-pop .inner-group button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    background: #FEFCF8;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    box-shadow: none;
    transition: background var(--trs-base), border-color var(--trs-base), color var(--trs-base);
}

.btn-secondary,
.btn-outline {
    height: 40px;
    padding: 0 18px;
    font-size: 1.35rem;
    font-weight: 600;
}

.btn-secondary:hover,
.btn-outline:hover,
.sale-wrap table td .btn-chk:hover,
#fee-over-pop .inner-group button:hover {
    color: var(--brand-primary);
    background: var(--surface-hover);
    border-color: #C9B8A4;
}

.sale-wrap table td .btn-chk {
    margin-left: 9px;
    height: 32px;
    padding: 0 12px;
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--brand-primary);
}

/* focus */
.btn-primary:focus,
.btn-add:focus,
.btn-delete:focus,
.btn-change:focus,
.btn-excel:focus,
.btn-src:focus,
.btn-write:focus,
.btn-secondary:focus,
.btn-outline:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.14);
}

/* ============================================================
   Login Page
============================================================ */
#login {
    padding: 0;
}

.logInner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background: linear-gradient(135deg, #2A241F 0%, #342E28 48%, #231D18 100%);
}

.logInner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 18%, rgba(138, 154, 134, 0.08), transparent 24%),
        radial-gradient(circle at 82% 78%, rgba(124, 102, 80, 0.08), transparent 26%);
    pointer-events: none;
}

.logInner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(rgba(255, 255, 255, 0.015), rgba(255, 255, 255, 0.015));
    pointer-events: none;
}

.logInner .log-wrap {
    position: relative;
    z-index: 1;
    width: 440px;
    padding: 46px 40px 38px;
    background: rgba(254, 252, 248, 0.97);
    border: 1px solid rgba(124, 102, 80, 0.12);
    border-radius: var(--radius-xl);
    box-shadow:
        0 18px 36px rgba(35, 29, 24, 0.18),
        0 6px 12px rgba(35, 29, 24, 0.08);
    text-align: center;
    backdrop-filter: blur(6px);
}

.logInner .log-wrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 22px;
    right: 22px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(138, 154, 134, 0) 0%,
            rgba(138, 154, 134, 0.28) 18%,
            rgba(124, 102, 80, 0.72) 50%,
            rgba(138, 154, 134, 0.28) 82%,
            rgba(138, 154, 134, 0) 100%);
}

.logInner .log-wrap .page-tit {
    margin-bottom: 34px;
}

.logInner .log-wrap .page-tit h2,
.logInner .log-wrap .page-tit h3,
.logInner .log-wrap .page-tit strong {
    color: var(--text-primary);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.logInner .log-wrap .page-tit p {
    margin-top: 10px;
    font-size: 1.35rem;
    color: var(--text-muted);
    font-weight: 400;
    line-height: 1.6;
}

.logInner .login-form label {
    display: block;
    width: 100%;
    margin-bottom: 6px;
    font-size: 1.25rem;
    color: var(--text-secondary);
    font-weight: 600;
    text-align: left;
    letter-spacing: -0.01em;
}

.logInner .login-form input {
    width: 100%;
    height: 46px;
    padding: 0 14px;
    font-size: 1.45rem;
    color: var(--text-primary);
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
}

.logInner .login-form input::placeholder {
    color: #B3A594;
}

.logInner .login-form .login-pw {
    margin-top: 18px;
}

.logInner .login-form .btn-login {
    display: block;
    width: 100%;
    height: 48px;
    margin-top: 30px;
    font-size: 1.55rem;
    font-weight: 700;
}

.logInner .pw-alert {
    margin-top: 18px;
    font-size: 1.35rem;
    color: var(--status-danger);
    font-weight: 500;
}

@media screen and (max-width: 768px) {
    .logInner {
        padding: 20px;
    }

    .logInner .log-wrap {
        width: 100%;
        max-width: 440px;
        padding: 36px 24px 30px;
    }
}

/* ============================================================
   Header / GNB
============================================================ */
.nav-wrap {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-width: 1280px;
    height: var(--header-height);
    background: var(--header-bg);
    border-bottom: 1px solid var(--header-border);
    box-shadow: 0 2px 8px rgba(47, 42, 38, 0.03);
    z-index: 100;
}

.nav-wrap::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(124, 102, 80, 0) 0%,
            rgba(124, 102, 80, 0.16) 20%,
            rgba(124, 102, 80, 0.16) 80%,
            rgba(124, 102, 80, 0) 100%);
}

.nav-inner-wrap {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 1720px;
    height: 100%;
    margin: 0 auto;
    padding: 0 42px;
}

h1 {
    flex-shrink: 0;
    margin: 0;
    margin-right: 16px;
    width: 240px;
    min-width: 240px;
}

h1 a {
    display: flex;
    align-items: center;
    /* height: 42px; */
    width: 100%;
    overflow: hidden;
}

h1 img {
    display: block;
    /* height: 42px; */
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
}

nav {
    flex: 1;
    min-width: 0;
    height: 100%;
}

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

.navInner .gnb {
    display: flex;
    align-items: center;
    gap: 0;
}

.navInner .gnb li {
    position: relative;
}

.navInner .gnb li+li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 14px;
    background: rgba(111, 103, 95, 0.12);
    transform: translateY(-50%);
}

.navInner .gnb li a {
    position: relative;
    display: flex;
    align-items: center;
    height: var(--header-height);
    padding: 0 28px;
    font-size: 1.55rem;
    font-weight: 600;
    color: #5D544C;
    letter-spacing: -0.01em;
    transition: color var(--trs-base);
}

.navInner .gnb li a:hover,
.navInner .gnb li a.active,
.navInner .gnb li.on a,
.navInner .gnb li.current a {
    color: var(--text-primary);
}

.navInner .gnb li a::after {
    content: "";
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 14px;
    height: 2px;
    background: var(--brand-primary);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .22s ease;
}

.navInner .gnb li a:hover::after,
.navInner .gnb li a.active::after,
.navInner .gnb li.on a::after,
.navInner .gnb li.current a::after {
    transform: scaleX(1);
}

/* right util */
header .hd-sc {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-left: 16px;
}

header .hd-sc>ul {
    display: flex;
    align-items: center;
    gap: 16px;
}

header .hd-sc>ul li {
    position: relative;
}

header .hd-sc>ul li+li::before {
    content: "";
    position: absolute;
    left: -9px;
    top: 50%;
    width: 1px;
    height: 11px;
    background: rgba(111, 103, 95, 0.14);
    transform: translateY(-50%);
}

header .hd-sc>ul li a {
    font-size: 1.35rem;
    font-weight: 500;
    color: #7E7368;
    transition: color var(--trs-base);
}

header .hd-sc>ul li a:hover {
    color: var(--text-primary);
}

header .hd-sc>ul li:first-child a {
    color: var(--brand-primary);
    font-weight: 700;
}

.hd-user-info {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-right: 12px;
    padding: 6px 10px;
    border-radius: var(--radius-lg);
    font-size: 13px;
    color: var(--text-primary);
    cursor: pointer;
    transition: background var(--trs-base);
    user-select: none;
}

.hd-user-info:hover,
.hd-user-info.is-open {
    background: var(--brand-light);
}

.hd-user-info__icon {
    font-size: 18px;
    color: var(--brand-primary);
}

.hd-user-info__meta {
    line-height: 1.3;
}

.hd-user-info__name {
    font-weight: 700;
    color: var(--text-primary);
}

.hd-user-info__role {
    margin-left: 4px;
    font-size: 11px;
    color: var(--brand-primary);
    font-weight: 500;
}

/* ── 유저 드롭다운 ── */
.hd-user-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 272px;
    background: var(--header-bg);
    border: 1px solid var(--header-border);
    border-radius: var(--radius-xl);
    box-shadow: 0 8px 32px rgba(47,42,38,0.12), 0 2px 8px rgba(47,42,38,0.06);
    z-index: 200;
    overflow: hidden;
}

.hd-user-info.is-open .hd-user-dropdown {
    display: block;
}

.hd-user-dropdown__profile {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px 14px;
    border-bottom: 1px solid var(--header-border);
}

.hd-user-dropdown__avatar {
    font-size: 28px;
    color: var(--brand-primary);
    flex-shrink: 0;
    opacity: .85;
}

.hd-user-dropdown__uname {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}

.hd-user-dropdown__urole {
    display: block;
    font-size: 12px;
    color: var(--brand-primary);
    font-weight: 500;
    margin-top: 3px;
}

.hd-user-dropdown__service {
    padding: 14px 18px;
    border-bottom: 1px solid var(--header-border);
}

.hd-user-dropdown__service-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #A0968C;
    margin-bottom: 7px;
}

.hd-user-dropdown__service-name {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
    margin-bottom: 8px;
}

.hd-user-dropdown__dday {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(124,102,80,0.10);
    color: var(--brand-primary);
    border: 1px solid rgba(124,102,80,0.18);
}

.hd-user-dropdown__dday.is-urgent {
    background: rgba(180,60,50,0.08);
    color: #b43c32;
    border-color: rgba(180,60,50,0.20);
}

.hd-user-dropdown__service-none {
    font-size: 13px;
    color: #A0968C;
}

.hd-user-dropdown__actions {
    display: flex;
    gap: 8px;
    padding: 13px 18px 16px;
}

.hd-user-dropdown__btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border-radius: var(--radius-lg);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--trs-base), border-color var(--trs-base), color var(--trs-base);
}

.hd-user-dropdown__btn--primary {
    background: var(--brand-primary);
    color: #fff;
    border: 1px solid var(--brand-primary);
}

.hd-user-dropdown__btn--primary:hover {
    background: var(--brand-hover);
    border-color: var(--brand-hover);
    color: #fff;
}

.hd-user-dropdown__btn--secondary {
    background: transparent;
    color: var(--brand-primary);
    border: 1px solid rgba(124,102,80,0.30);
}

.hd-user-dropdown__btn--secondary:hover {
    background: var(--brand-light);
    border-color: rgba(124,102,80,0.50);
    color: var(--brand-hover);
}

.search-util {
    position: relative;
}

header .hd-sc .btn-src-open {
    width: 40px;
    height: 40px;
    border: 1px solid #D8CDC0;
    border-radius: var(--radius-md);
    background: #3F372F url(/resources/images/header-btn-src.png) no-repeat center/18px;
    overflow: hidden;
    text-indent: -9999px;
    transition: background-color var(--trs-base), border-color var(--trs-base);
}

header .hd-sc .btn-src-open:hover {
    background-color: #342D27;
    border-color: #B9A58F;
}

header .hd-sc .btn-src-wrap {
    display: none;
    position: absolute;
    top: 52px;
    right: 0;
    width: 320px;
    padding: 16px;
    background: #FEFCF8;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

header .hd-sc .btn-src-wrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    right: 18px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(63, 55, 47, 0) 0%,
            rgba(63, 55, 47, 0.16) 20%,
            rgba(124, 102, 80, 0.56) 50%,
            rgba(63, 55, 47, 0.16) 80%,
            rgba(63, 55, 47, 0) 100%);
}

header .hd-sc .btn-src-wrap .src-title {
    margin-bottom: 10px;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

header .hd-sc .btn-src-wrap>* {
    display: block;
    width: 100%;
}

header .hd-sc .btn-src-wrap select,
header .hd-sc .btn-src-wrap input {
    width: 100%;
    height: 38px;
    margin-bottom: 8px;
}

header .hd-sc .btn-src-wrap .btn-src-submit {
    height: 40px;
    margin-top: 2px;
    font-size: 1.35rem;
    font-weight: 700;
}

@media screen and (max-width: 1479px) {
    .nav-inner-wrap {
        padding: 0 28px;
    }

    .navInner .gnb li a {
        padding: 0 20px;
        font-size: 1.45rem;
    }

    .navInner .gnb li a::after {
        left: 20px;
        right: 20px;
    }
}

/* ============================================================
   Sidebar / SNB
============================================================ */
#snb {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sidebar-width);
    height: 100vh;
    min-height: 680px;
    padding-top: calc(var(--header-height) + 12px);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0) 90px),
        linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-2) 52%, #241F1B 100%);
    border-right: 1px solid rgba(247, 243, 237, 0.06);
    box-shadow: 6px 0 18px rgba(35, 29, 24, 0.10);
    overflow: hidden;
    z-index: 99;
}

#snb::before {
    content: "";
    position: absolute;
    top: calc(var(--header-height) + 8px);
    left: 14px;
    right: 14px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.06) 50%,
            rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
}

#snb::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background: linear-gradient(180deg,
            rgba(255, 255, 255, 0.06) 0%,
            rgba(255, 255, 255, 0.015) 100%);
    pointer-events: none;
}

.snbInner {
    height: calc(100vh - var(--header-height) - 92px);
    padding: 0 14px 22px;
    overflow-y: auto;
    overflow-x: hidden;
}

.snbInner::-webkit-scrollbar {
    width: 4px;
}

.snbInner::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
}

.snb {
    padding-bottom: 16px;
}

.snb>li {
    margin-bottom: 6px;
}

.snb>li>a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 42px 0 16px;
    font-size: 1.38rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    color: #C6BAAC;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .16s ease;
}

.snb>li>a::before {
    content: "";
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 0;
    width: 2px;
    background: var(--brand-primary);
    opacity: 0;
    transform: scaleY(0.45);
    transform-origin: center;
    transition: opacity .22s ease, transform .22s ease;
}

.snb>li>a:hover {
    color: var(--sidebar-text-on);
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.04);
    transform: translateX(1px);
}

.snb>li>a:focus-visible {
    outline: none;
    color: #FFFFFF;
    border-color: rgba(124, 102, 80, 0.34);
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.10);
}

.snb>li>a.active,
.snb>li>a.current {
    color: #FFFDF9;
    font-weight: 700;
    background: linear-gradient(90deg, rgba(124, 102, 80, 0.20) 0%, rgba(255, 255, 255, 0.03) 100%);
    border-color: rgba(124, 102, 80, 0.12);
}

.snb>li>a.active::before,
.snb>li>a.current::before {
    opacity: 1;
    transform: scaleY(1);
}

.snb>li>a img {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%) rotate(0deg);
    opacity: .62;
    filter: brightness(0) saturate(100%) invert(82%) sepia(6%) saturate(522%) hue-rotate(344deg) brightness(91%) contrast(89%);
    transition: transform .22s ease, opacity var(--trs-base);
}

.snb>li>a:hover img {
    opacity: .95;
}

.snb>li.open>a img,
.snb>li>a.active img,
.snb>li>a.current img {
    transform: translateY(-50%) rotate(180deg);
    opacity: 1;
}

.snb>li.open {
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.018);
}

.snb li .depth2 {
    display: none;
    margin-top: 8px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.024);
    border: 1px solid rgba(255, 255, 255, 0.035);
    border-radius: var(--radius-md);
    max-height: 320px;
    overflow-y: auto;
}

.snb li .depth2.is-open {
    display: block;
}

.snb li .depth2::-webkit-scrollbar {
    width: 4px;
}

.snb li .depth2::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
}

.snb li .depth2 li+li {
    margin-top: 4px;
}

.snb li .depth2 li a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 0 12px 0 24px;
    font-size: 1.26rem;
    font-weight: 500;
    color: #B7AB9D;
    border-radius: var(--radius-md);
    transition: background .18s ease, color .18s ease, transform .16s ease;
}

.snb li .depth2 li a::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    transform: translateY(-50%);
    transition: background .18s ease;
}

.snb li .depth2 li a:hover {
    color: #FFF8F0;
    background: rgba(255, 255, 255, 0.045);
    transform: translateX(1px);
}

.snb li .depth2 li a:hover::before {
    background: var(--brand-primary);
}

.snb li .depth2 li a.active,
.snb li .depth2 li a.current {
    color: #FFFDF9;
    font-weight: 700;
    background: linear-gradient(90deg, rgba(124, 102, 80, 0.22), rgba(255, 255, 255, 0.03));
}

.snb li .depth2 li a.active::before,
.snb li .depth2 li a.current::before {
    background: #F1E6D6;
}

#quick-links {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    background: linear-gradient(180deg, rgba(36, 31, 27, 0) 0%, rgba(36, 31, 27, 0.94) 36%);
}

#quick-links .btn-memo {
    width: 100%;
    height: 44px;
    padding: 0 16px;
    font-size: 1.32rem;
    font-weight: 700;
}

#quick-links .btn-memo img {
    width: 17px;
    height: 17px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

@media screen and (max-width: 1479px) {
    #snb {
        width: 236px;
    }

    .main-wrap.co-area {
        margin-left: 236px;
    }

    #quick-memo-group {
        left: calc(236px + 20px);
    }
}

/* ============================================================
   Main Layout
============================================================ */
main {
    padding-top: var(--header-height);
    background: var(--surface-bg);
}

.main {
    overflow-x: auto;
    background: var(--surface-bg);
}

.main-wrap.co-area {
    margin: var(--header-height) 0 0 var(--sidebar-width);
    padding: 0 40px 88px;
    min-width: 900px;
    max-width: 1300px;
}

/* ============================================================
   Page Title
============================================================ */
.main-wrap .tit-wrap {
    position: relative;
    margin-bottom: 30px;
    padding-bottom: 18px;
    /* border-bottom: 1px solid var(--surface-border); */
}

.main-wrap .tit-wrap::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 90px;
    height: 2px;
    /* background: var(--brand-primary); */
}

.main-wrap .tit-wrap h3 {
    font-size: 2.3rem;
    color: var(--text-primary);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.35;
}

.main-wrap .tit-wrap h3::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 22px;
    margin-right: 10px;
    vertical-align: -2px;
    background: var(--brand-primary);
}

.main-wrap .tit-wrap .btn-modi-available {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    height: 42px;
    padding: 0 22px;
    font-size: 1.35rem;
    font-weight: 600;
}

/* ============================================================
   Common Title Group
============================================================ */
.co-area .co-tit-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 50px;
    padding: 0 18px;
    background: var(--table-head-bg);
    border: 1px solid var(--table-head-bg);
    border-bottom: 0;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.co-area .co-tit-group p,
.co-area .co-tit-group h4 {
    font-size: 1.45rem;
    color: #FFFDF9;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.co-area .co-tit-group button {
    height: 30px;
    padding: 0 14px;
    font-size: 1.25rem;
    font-weight: 600;
}

/* ============================================================
   Common Panels / Cards
============================================================ */
.content-panel,
.content-box,
.section-panel,
.src-upper-wrap,
.src-lower-wrap,
.total-result-wrap .table-wrap,
.total-summary-wrap,
.src-date-result-wrap,
.indInner section.common,
.indInner .scheduler-wrap,
.common-wrap table,
.opr-stt .table-wrap,
.opr-fee .fee-wrap table,
#quick-memo-group .quick-wrap,
#fee-over-pop .inner-group {
    background: var(--surface-card);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

/* ============================================================
   Tables — Common
============================================================ */
.table-wrap {
    border: 1px solid var(--table-border);
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    overflow: hidden;
    overflow-x: auto;
    background: var(--surface-card);
    box-shadow: var(--shadow-md);
}

.table-wrap::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.table-wrap::-webkit-scrollbar-thumb {
    background: #C9BFB2;
    border-radius: 99px;
}

.co-area table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--table-border);
}

.co-area table th {
    height: 44px;
    padding: 4px 10px;
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--table-head-text);
    background: var(--table-head-bg);
    /* border: 1px solid #5A4E44; */
    text-align: center;
    vertical-align: middle;
    letter-spacing: -0.01em;
}

.co-area table td {
    height: 44px;
    padding: 6px 10px;
    font-size: 1.35rem;
    color: var(--text-primary);
    background: var(--surface-card);
    border: 1px solid var(--table-border);
    text-align: center;
    vertical-align: middle;
    transition: background var(--trs-fast), color var(--trs-fast);
}

.co-area table tbody tr:last-child td {
    border-bottom: 1px solid var(--table-border);
}

.co-area table tbody tr:nth-child(even) td {
    background: var(--table-row-alt);
}

.co-area table tbody tr:hover td {
    background: var(--table-hover);
}

.co-area table tbody tr {
    cursor: pointer;
}

.co-area table td.left,
.co-area table td.ta-l {
    text-align: left;
}

.co-area table td.right,
.co-area table td.ta-r {
    text-align: right;
}

/* Badge */
td span.type,
td span.place,
.indInner .lower-left-wrap td .place {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 0 10px;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--product-badge-text, #FFFDF9);
    background: var(--product-badge-bg, var(--tag-individual));
    border: 1px solid var(--product-badge-border, rgba(138, 111, 80, 0.16));
    border-radius: 999px;
    margin: 2px 0;
    letter-spacing: 0.02em;
}

td span.type2,
td span.place2,
.indInner .lower-left-wrap td .place2 {
    background: var(--tag-couple);
}

td span.type3 {
    background: var(--tag-family);
}

/* ============================================================
   Search / Filter Area
============================================================ */
.src-group .upper-flex-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 22px;
    gap: 12px;
    flex-wrap: wrap;
}

.src-group .btn-wrap {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.src-group .src-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.src-group .src-wrap select {
    width: 160px;
}

.src-group .src-wrap input {
    width: 240px;
}

.src-group .src-result .co-tit-group button span {
    display: inline-block;
    width: 12px;
    height: 2px;
    margin-left: 6px;
    background: rgba(255, 253, 249, 0.9);
    vertical-align: 5px;
}

.src-group .table-wrap {
    height: 168px;
    overflow-y: auto;
}

.src-group .table-wrap th,
.src-group .table-wrap td {
    height: 40px;
}

.src-group .table-wrap td {
    padding-left: 0;
    text-align: center;
    cursor: pointer;
}

.src-group .table-wrap tbody tr:hover td {
    color: var(--text-primary);
}

/* ============================================================
   Operations Tabs
============================================================ */
.opr-wrap .tab-wrap,
.opr-wrap ul.tab-wrap {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    list-style: none;
    margin: 0 0 26px;
    padding: 0;
    border-bottom: 2px solid #DDD3C8;
    flex-wrap: wrap;
}

/* tab-wrap 안에 ul이 있는 경우 */
.opr-wrap .tab-wrap ul {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.opr-wrap .tab-wrap li {
    position: relative;
    flex-shrink: 0;
}

.opr-wrap .tab-wrap li a {
    position: relative;
    display: block;
    min-width: 100px;
    padding: 11px 20px 10px;
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    text-align: center;
    white-space: nowrap;
    transition: color var(--trs-base), background var(--trs-base), border-color var(--trs-base);
}

.opr-wrap .tab-wrap li a:hover {
    color: var(--text-primary);
    background: var(--surface-hover);
}

.opr-wrap .tab-wrap li a.active,
.opr-wrap .tab-wrap li.on a,
.opr-wrap .tab-wrap li.current a {
    font-weight: 700;
    color: var(--text-primary);
    background: var(--surface-card);
    border-color: #DDD3C8;
    margin-bottom: -2px;
    padding-bottom: 12px;
}

.opr-wrap .tab-wrap li a.active::after,
.opr-wrap .tab-wrap li.on a::after,
.opr-wrap .tab-wrap li.current a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 8px;
    height: 2px;
    background: var(--brand-primary);
    border-radius: 1px;
}

/* ============================================================
   Search upper / lower forms
============================================================ */
.src-upper-wrap,
.src-lower-wrap {
    position: relative;
    overflow: visible;
}

.src-upper-wrap {
    margin-bottom: 16px;
    padding: 0;
}

.src-upper-wrap::before {
    display: none;
}

.src-upper-wrap .table-wrap {
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl);
    overflow: visible;
    background: var(--surface-card);
}

.src-upper-wrap .btn-excel {
    position: absolute;
    top: 7px;
    right: 16px;
    z-index: 1;
}

.src-upper-wrap table,
.src-lower-wrap table {
    width: 100%;
    border-top: 0;
    border-collapse: collapse;
    border: none;
}

.co-area .src-upper-wrap table th,
.co-area .src-lower-wrap table th {
    width: 120px;
    height: 48px;
    padding: 0 0 0 18px;
    font-size: 1.3rem;
    font-weight: 700;
    color: #4D433B;
    background: var(--table-th-soft) !important;
    border-bottom: 1px solid var(--table-border);
    border-right: 1px solid var(--table-border);
    text-align: left;
    vertical-align: middle;
    letter-spacing: -0.01em;
}

.co-area .src-upper-wrap table td,
.co-area .src-lower-wrap table td {
    height: 48px;
    /* padding: 8px 16px; */
    font-size: 1.3rem;
    color: var(--text-primary);
    background: var(--surface-card) !important;
    border-bottom: 1px solid var(--table-border);
    text-align: left;
    vertical-align: middle;
}

.co-area .src-upper-wrap table tbody tr:last-child th,
.co-area .src-upper-wrap table tbody tr:last-child td,
.co-area .src-lower-wrap table tbody tr:last-child th,
.co-area .src-lower-wrap table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.src-lower-wrap {
    margin-top: 8px;
}

.src-lower-wrap .table-wrap {
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl);
    overflow: visible;
    background: var(--surface-card);
}

/* 검색 영역과 결과 영역 통일 색상 */
.src-upper-wrap .table-wrap,
.src-lower-wrap .table-wrap,
.total-result-wrap .table-wrap {
    background: var(--surface-card);
}

.src-lower-wrap input {
    width: 280px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    font-size: 1.28rem;
    background: var(--input-bg);
}

.src-lower-wrap input:focus {
    outline: none;
    border-color: var(--input-focus);
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.12);
}

.src-lower-wrap button {
    height: 36px;
    padding: 0 16px;
    margin-left: 8px;
    font-size: 1.28rem;
    font-weight: 600;
}

.co-radio-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 0;
}

.co-radio-wrap .wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 18px;
    min-height: 32px;
}

.co-radio-wrap input[type="radio"],
.co-radio-wrap input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    accent-color: var(--brand-primary);
    cursor: pointer;
}

.co-radio-wrap label {
    font-size: 1.32rem;
    font-weight: 500;
    color: var(--text-primary);
    cursor: pointer;
    vertical-align: middle;
}

.date-selector {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 12px;
    visibility: hidden;
}

.date-selector.is-visible {
    visibility: visible;
}

.date-selector input {
    width: 150px;
    height: 36px;
    padding: 0 10px;
    font-size: 1.28rem;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    background: var(--input-bg);
    color: var(--text-primary);
}

.date-selector input:focus {
    outline: none;
    border-color: var(--input-focus);
    box-shadow: 0 0 0 2px rgba(124, 102, 80, 0.12);
}

.date-selector span {
    color: var(--text-muted);
    font-size: 1.25rem;
    font-weight: 500;
}

/* ============================================================
   Total Result / Summary / Pagination
============================================================ */
.total-result-wrap {
    margin-top: 24px;
}

.total-result-wrap .table-wrap {
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    overflow-x: auto;
}

.total-result-wrap p.total-alert {
    margin-bottom: 10px;
    padding-left: 2px;
    font-size: 1.5rem;
    color: var(--text-secondary);
    font-weight: 500;
    letter-spacing: -0.01em;
}

.total-result-wrap p.total-alert b {
    color: var(--brand-primary);
    font-weight: 700;
}

.total-result-wrap .table-wrap table thead th {
    background: var(--table-head-bg) !important;
    color: var(--table-head-text);
    border-bottom: 1px solid #5A4E44;
}

.total-summary-wrap {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin: 20px 0 22px;
    padding: 0;
    overflow: hidden;
}

.total-summary-item {
    position: relative;
    flex: 1;
    text-align: center;
    padding: 22px 18px 20px;
    background: linear-gradient(180deg, #FEFCF8 0%, #FAF6F0 100%);
}

.total-summary-item:first-child::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(138, 154, 134, 0.08) 0%,
            rgba(124, 102, 80, 0.36) 50%,
            rgba(138, 154, 134, 0.08) 100%);
}

.total-summary-label {
    margin-bottom: 8px;
    font-size: 1.15rem;
    color: var(--text-muted);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.total-summary-value {
    font-size: 2.15rem;
    line-height: 1.2;
    color: var(--text-primary);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.total-summary-value.amount {
    color: var(--status-success);
}

.total-summary-divider {
    width: 1px;
    margin: 16px 0;
    background: linear-gradient(180deg,
            rgba(229, 221, 210, 0) 0%,
            rgba(229, 221, 210, 1) 20%,
            rgba(229, 221, 210, 1) 80%,
            rgba(229, 221, 210, 0) 100%);
}

.pg_wrap,
.pagination {
    margin-top: 26px;
    display: flex;
    justify-content: center;
}

.pg_wrap .pg {
    display: flex;
}

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

.pg_wrap ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 1.35rem;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--surface-card);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    transition: color var(--trs-base), border-color var(--trs-base), background var(--trs-base);
}

.pg_wrap ul li a:hover {
    color: var(--brand-primary);
    border-color: #CDBAA6;
    background: #FBF6EF;
}

.pg_wrap ul li.active a {
    color: #FFFDF9;
    background: var(--brand-primary);
    border-color: rgba(124, 102, 80, 0.28);
    font-weight: 700;
}

.pg_wrap ul li.page-arrow a {
    min-width: 36px;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid transparent;
    box-shadow: none;
    letter-spacing: normal;
}

.pg_wrap ul li.page-arrow a:hover {
    color: var(--text-primary);
    background: #F5EFE7;
    border-color: var(--surface-border);
}

.pg_wrap ul li.disabled a,
.pg_wrap ul li a.disabled {
    color: #B4A89B;
    background: #F7F2EC;
    border-color: #E7DED4;
    cursor: default;
    pointer-events: none;
    box-shadow: none;
}

/* ============================================================
   Date Result
============================================================ */
.src-date-result-wrap {
    margin-top: 34px;
    overflow: hidden;
}

.src-date-result-wrap p.tit {
    position: relative;
    padding: 15px 20px;
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--text-primary);
    border-bottom: 1px solid var(--surface-border);
    background: linear-gradient(180deg, #F8F3EC 0%, #F3ECE3 100%);
    letter-spacing: -0.01em;
}

.src-date-result-wrap p.tit::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 16px;
    margin-right: 10px;
    vertical-align: -2px;
    background: var(--brand-primary);
}

.src-date-result-wrap thead th {
    background: var(--table-head-bg) !important;
    color: var(--table-head-text);
    border-bottom: 1px solid #5A4E44;
}

.src-date-result-wrap td {
    text-align: center;
    color: var(--text-primary);
    background: var(--surface-card);
}

.src-date-result-wrap tbody tr:nth-child(even) td {
    background: var(--table-row-alt);
}

.src-date-result-wrap tbody tr:hover td {
    background: var(--table-hover);
}

/* ============================================================
   Responsive summary
============================================================ */
@media screen and (max-width: 768px) {
    .total-summary-wrap {
        flex-direction: column;
    }

    .total-summary-divider {
        width: auto;
        height: 1px;
        margin: 0 16px;
        background: linear-gradient(90deg,
                rgba(229, 221, 210, 0) 0%,
                rgba(229, 221, 210, 1) 20%,
                rgba(229, 221, 210, 1) 80%,
                rgba(229, 221, 210, 0) 100%);
    }
}

/* ============================================================
   Dashboard
============================================================ */
.indInner {
    width: 1200px;
    margin: var(--header-height) auto 0;
    padding: 0 20px 64px;
}

.indInner section.common {
    overflow: hidden;
}

.indInner .tit-box {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 22px;
    background: var(--table-head-bg);
    border-bottom: 1px solid #5A4E44;
}

.indInner .tit-box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    right: 18px;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(138, 154, 134, 0.06) 0%,
            rgba(124, 102, 80, 0.36) 50%,
            rgba(138, 154, 134, 0.06) 100%);
}

.indInner .tit-box h3 {
    font-size: 1.45rem;
    color: #FFFDF9;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.indInner .tit-box h3 span {
    padding-left: 8px;
    font-size: 1.25rem;
    color: #D4C8BB;
    font-weight: 400;
}
.indInner .tit-box .go-url a {
    position: absolute;
    top: 50%; right: 29px; transform: translateY(-50%);
    width: 18px; height: 18px;
}
.indInner .tit-box .go-url span {
    position: absolute;
    top: 50%; left: 0; transform: translateY(-50%);
    width: 100%; height: 2px;
    background: #FFF;
}
.indInner .tit-box .go-url span:last-child {
    transform: translateY(-50%) rotate(90deg);
}
.indInner .upper-group {
    margin-bottom: 24px;
    display: flex;
    gap: 20px;
}

.indInner .upper-group .status {
    flex: 1.5;
    float: none;
    width: auto;
}

.indInner .upper-group .charge {
    flex: 1;
    float: none;
    width: auto;
}

.indInner .upper-group .status .graph-group {
    padding: 22px 24px 18px;
}

.indInner .upper-group .status .graph-group .graph {
    display: flex;
    justify-content: space-between;
}

.indInner .upper-group .status .graph-group .graph + .graph {
    margin-top: 14px;
}

.indInner .upper-group .status p.name {
    float: left;
    width: 96px;
    padding-top: 9px;
    font-size: 1.28rem;
    color: var(--text-secondary);
    font-weight: 600;
}

.indInner .upper-group .status .graph-wrap {
    position: relative;
    float: left;
    width: 420px;
    height: 36px;
    margin-right: 18px;
    background: #F3EEE7;
    border-radius: 999px;
    overflow: hidden;
    border: 1px solid #E4DCD1;
    box-shadow: inset 0 1px 1px rgba(47, 42, 38, 0.03);
}

.indInner .upper-group .status .graph-wrap p {
    position: relative;
    z-index: 2;
    font-size: 1.28rem;
    color: #5C534C;
    font-weight: 700;
    line-height: 36px;
    text-align: center;
}

.indInner .upper-group .status .graph-wrap .line {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
    transition: width .8s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.indInner .upper-group .status .graph-wrap .line.active {
    transform: scaleX(1);
}

.indInner .upper-group .status p.total {
    float: left;
    padding-top: 9px;
    font-size: 1.28rem;
    color: var(--text-secondary);
    font-weight: 600;
}

.indInner .charge .graph-group {
    padding: 22px 24px;
}

.indInner .charge .cont-wrap .alert {
    padding: 14px 16px;
    margin-bottom: 12px;
    font-size: 1.36rem;
    line-height: 1.65;
    color: var(--text-primary);
    background: linear-gradient(180deg, #FCF8F3 0%, #F6F0E7 100%);
    border: 1px solid #E6DBCF;
    border-left: 3px solid var(--brand-primary);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.indInner .charge .cont-wrap .alert b {
    color: var(--brand-primary);
    font-weight: 700;
}

.indInner .lower-group {
    display: flex;
    gap: 20px;
}

.indInner .lower-left-wrap {
    flex: 1;
    float: none;
    width: auto;
}

.indInner .lower-left-wrap .table-wrap {
    height: 320px;
    overflow-y: auto;
    background: var(--surface-card);
}

.indInner .lower-left-wrap th {
    height: 42px;
    font-size: 1.35rem;
    color: var(--table-head-text);
    background: var(--table-head-bg);
    border-bottom: 1px solid #5A4E44;
}

.indInner .lower-left-wrap td {
    height: 42px;
    font-size: 1.35rem;
    color: var(--text-secondary);
    text-align: center;
    border-bottom: 1px solid var(--table-border);
    background: var(--surface-card);
}

.indInner .lower-left-wrap tbody tr:nth-child(even) td {
    background: var(--table-row-alt);
}

.indInner .lower-left-wrap tbody tr:hover td {
    background: var(--table-hover);
}

.indInner .total-income-wrap {
    display: flex;
    gap: 16px;
    margin-top: 20px;
}

.indInner .total-income-wrap>div {
    flex: 1;
    width: auto;
    height: auto;
    float: none;
    padding: 22px 24px;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(124, 102, 80, 0.20);
    background: var(--status-info) url(/resources/images/index-income-sale.png) no-repeat 50% 95%;;
    box-shadow: 0 6px 14px rgba(124, 102, 80, 0.12);
    position: relative;
    overflow: hidden;
}

.indInner .total-income-wrap>div::after {
    content: "";
    position: absolute;
    top: -30px;
    right: -10px;
    width: 100px;
    height: 100px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 70%);
}

.indInner .total-income-wrap .admin-income {
    background: var(--status-success) url(/resources/images/index-income-admin.png) no-repeat 50% 95%;
    border-color: rgba(110, 124, 104, 0.20);
    box-shadow: 0 6px 14px rgba(110, 124, 104, 0.12);
    margin-left: 0;
}

.indInner .total-income-wrap p {
    color: #FFFDF9;
    position: relative;
    z-index: 2;
}

.indInner .total-income-wrap p.tit {
    font-size: 1.35rem;
    font-weight: 500;
    opacity: .9;
}

.indInner .total-income-wrap p.tit span {
    font-size: 1.15rem;
    opacity: .75;
    padding-left: 4px;
}

.indInner .total-income-wrap p.money {
    margin-top: 10px;
    font-size: 2.25rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.indInner .scheduler-wrap {
    width: 300px;
    float: none;
    height: auto;
    overflow: hidden;
}

.indInner .scheduler-wrap .tit-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 18px;
    border-bottom: 1px solid #5A4E44;
    background: var(--table-head-bg);
}

.indInner .scheduler-wrap h3 {
    font-size: 1.45rem;
    color: #FFFDF9;
    font-weight: 600;
}

.indInner .scheduler-wrap .tit-wrap button {
    width: 22px;
    opacity: .72;
    transition: opacity var(--trs-base);
}

.indInner .scheduler-wrap .tit-wrap button:hover {
    opacity: 1;
}

.indInner .calendar-wrap {
    padding: 18px;
    border-bottom: 1px solid var(--surface-border);
    background: var(--surface-card);
}

.indInner .calendar-wrap div.month {
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    user-select: none;
}

.indInner .calendar-wrap .month button {
    cursor: pointer;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: var(--text-secondary);
    background: var(--table-th-soft);
    border: 1px solid #E0D5C8;
    border-radius: var(--radius-md);
    transition: background var(--trs-base), color var(--trs-base), border-color var(--trs-base);
}

.indInner .calendar-wrap .month button:hover {
    background: #EFE7DC;
    color: var(--brand-primary);
    border-color: #D0C0AC;
}

.indInner .calendar-wrap .month button i {
    pointer-events: none;
}

.indInner .calendar-wrap .month .today-date {
    min-width: 130px;
    text-align: center;
    font-size: 1.65rem;
    color: var(--text-primary);
    font-weight: 700;
    cursor: pointer;
    letter-spacing: -0.02em;
}

.indInner .calendar-wrap .weekdays,
.indInner .calendar-wrap .dates {
    display: flex;
    flex-wrap: wrap;
}

.indInner .calendar-wrap .weekdays {
    margin-bottom: 10px;
}

.indInner .calendar-wrap .weekdays>div {
    width: 14.28%;
    font-size: 1.18rem;
    font-weight: 700;
    text-align: center;
    color: var(--text-muted);
}

.indInner .calendar-wrap .weekdays .sun {
    color: var(--status-danger);
}

.indInner .calendar-wrap .weekdays .sat {
    color: var(--brand-primary);
}

.indInner .calendar-wrap .dates .date {
    width: 14.28%;
    font-size: 1.25rem;
    font-weight: 500;
    text-align: center;
    color: var(--text-secondary);
}

.indInner .calendar-wrap .dates .date .date-btn {
    position: relative;
    display: block;
    width: 100%;
    min-height: 34px;
    border: none;
    background: transparent;
    cursor: pointer;
}

.indInner .calendar-wrap .dates .date .day-number {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 3px auto;
    line-height: 1;
    border-radius: 50%;
}

.indInner .calendar-wrap .dates .date .other {
    opacity: .3;
}

.indInner .calendar-wrap .dates .date .day-number.is-today {
    border: 1px solid #D0C0AC;
}

.indInner .calendar-wrap .dates .date .day-number.is-selected {
    position: relative;
    color: #FFFDF9;
    font-weight: 700;
    z-index: 2;
}

.indInner .calendar-wrap .dates .date .day-number.is-selected::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28px;
    height: 28px;
    transform: translate(-50%, -50%);
    background: var(--brand-primary);
    border-radius: 50%;
    z-index: -1;
}

.indInner .calendar-wrap .dates .date .day-number.has-event:not(.is-selected) {
    background: #EFE4D8;
    color: var(--brand-primary);
    font-weight: 700;
}

.indInner .calendar-wrap .dates .date .event-dot {
    position: absolute;
    top: 1px;
    right: 4px;
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    border-radius: 999px;
    background: #A56657;
    color: #FFFDF9;
    font-size: 1rem;
    font-style: normal;
    line-height: 15px;
}

.indInner .memo-wrap {
    height: 140px;
    padding: 16px 18px;
    overflow-y: auto;
    background: var(--surface-card-soft);
}

.indInner .memo-wrap .memo-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 10px;
}

.indInner .memo-wrap .memo-head strong {
    font-size: 1.32rem;
    color: var(--text-primary);
    font-weight: 800;
}

.indInner .memo-wrap .memo-head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #EFE4D8;
    color: var(--brand-primary);
    font-size: 1.1rem;
    font-weight: 700;
}

.indInner .memo-wrap .memo-item {
    padding: 10px 0;
    border-top: 1px dashed #D8CCBE;
}

.indInner .memo-wrap .memo-item:first-child {
    border-top: none;
    padding-top: 0;
}

.indInner .memo-wrap .memo-item-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.indInner .memo-wrap .memo-item-range {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--brand-primary);
    font-size: 1.18rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.indInner .memo-wrap .schedule_memo {
    font-size: 1.25rem;
    color: var(--text-primary);
    line-height: 1.65;
    word-break: break-word;
}

.indInner .memo-wrap .empty {
    margin-top: 40px;
    text-align: center !important;
    color: var(--text-muted);
    font-size: 1.32rem;
}

.indInner .memo-wrap .btn-wrap {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.indInner .memo-wrap .btn-wrap button {
    width: 20px;
    height: 20px;
    opacity: .72;
    transition: opacity var(--trs-base);
    background: url(/resources/images/icon-schedule-btn-modi.svg) no-repeat center/contain;
}

.indInner .memo-wrap .btn-wrap button:hover {
    opacity: 1;
}

.indInner .memo-wrap .btn-wrap button.btn-delete {
    background-image: url(/resources/images/icon-schedule-btn-delete.png);
    border: none;
    padding: 0;
}


/* ============================================================
   Sale Wrap
============================================================ */
.sale-wrap select {
    appearance: none !important;
    background: var(--input-bg) url(/resources/images/icon-select-arrow.png) no-repeat calc(100% - 12px) 50% / 12px;
}

.sale-wrap select,
.sale-wrap input {
    height: 36px;
    padding: 0 12px;
    font-size: 1.35rem;
}

.sale-wrap table th,
.sale-wrap table td {
    height: 46px;
    font-size: 1.35rem;
    color: var(--text-primary);
}

.sale-wrap table td {
    padding-left: 14px;
}

/* ============================================================
   Statistics
============================================================ */
.opr-stt .stt-table-wrap {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.opr-stt .table-wrap.place {
    flex: 1;
    min-width: 400px;
}

.opr-stt .table-wrap.corpse {
    flex: 1;
    min-width: 320px;
}

.opr-stt .table-wrap {
    padding: 18px 18px 14px;
    overflow-x: auto;
}

.opr-stt .table-wrap p.tit {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.opr-stt .table-wrap p.tit::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 17px;
    background: var(--brand-primary);
    border-radius: 2px;
    flex-shrink: 0;
}

.opr-stt .table-wrap thead th {
    color: var(--table-head-text);
    background: var(--table-head-bg) !important;
    border: 1px solid #5A4E44;
}

.opr-stt .table-wrap tbody th {
    font-weight: 500;
    color: var(--text-primary);
    background: var(--table-th-soft) !important;
    border: 1px solid var(--table-border);
}

.opr-stt .table-wrap tbody :is(th[rowspan="2"], th[rowspan="3"], th[rowspan="4"]) {
    font-weight: 700;
    color: #4D433B;
    background: var(--table-th-soft-2) !important;
}

.opr-stt .table-wrap td {
    text-align: center;
    background: var(--surface-card);
    border: 1px solid var(--table-border);
}

.opr-stt .table-wrap td.moneys {
    text-align: right;
    padding-right: 12px;
}

.opr-stt .table-wrap .total {
    margin-top: 12px;
    border-top: 2px solid #5A4E44;
}

.opr-stt .table-wrap .total tbody th {
    color: #FFFDF9;
    font-weight: 700;
    background: var(--table-head-bg) !important;
}

/* ============================================================
   Sales Status
============================================================ */

.opr-sell .table-total {
    margin-bottom: 32px;
}

.opr-sell .table-total thead th {
    color: #FFFDF9;
    background: var(--table-head-bg) !important;
    border: 1px solid #5A4E44;
}

.opr-sell .table-total span.br::before {
    display: block;
    content: '';
}

.opr-sell .table-result table {
    width: 100%;
    border-collapse: collapse;
}

.opr-sell .table-result table:nth-child(n+2) {
    margin-top: 12px;
}

.opr-sell .table-result th {
    color: var(--text-primary);
    background: var(--table-th-soft-2) !important;
    border-right: 1px solid var(--table-border);
    border-bottom: 1px solid var(--table-border);
}

.opr-sell .table-result .divide th {
    background: var(--table-th-soft) !important;
    border-color: var(--surface-border);
}

.opr-sell .table-result td {
    width: 99px;
    background: var(--surface-card);
    border-right: 1px solid var(--table-border);
}

.opr-sell .table-result th:last-child,
.opr-sell .table-result td:last-child {
    border-right: 0;
}

/* ============================================================
   Common Wrap
============================================================ */
.common-wrap table {
    width: 100%;
    font-size: 1.35rem;
    overflow: hidden;
    border-collapse: collapse;
}

.common-wrap .total-result-wrap table th,
.common-wrap .src-group table th {
    height: 48px;
    padding: 0 10px;
    color: #FFFDF9;
    background: var(--table-head-bg) !important;
    font-weight: 600;
    text-align: center;
    border: 1px solid #5A4E44;
}

.common-wrap .total-result-wrap table td,
.common-wrap .src-group table td {
    height: 48px;
    padding: 6px 10px;
    color: var(--text-primary);
    text-align: center;
    cursor: default;
    background: var(--surface-card);
    border: 1px solid var(--table-border);
}

.common-wrap .total-result-wrap table tbody tr:nth-child(even) td {
    background: var(--table-row-alt);
}

.common-wrap .total-result-wrap table tbody tr:hover td {
    background: var(--table-hover);
}

.common-wrap table input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--brand-primary);
}

.common-wrap .btn-wrap {
    margin-top: 24px;
    text-align: right;
}

/* Password section */
.password-section {
    margin-bottom: 28px;
}

.password-section h3 {
    margin-bottom: 14px;
    padding-left: 2px;
    font-size: 1.45rem;
    color: var(--text-secondary);
    font-weight: 600;
    letter-spacing: -0.01em;
}

.password-notice {
    margin-top: 10px;
    padding-left: 4px;
    font-size: 1.2rem;
    color: var(--text-muted);
}

/* ============================================================
   Fee Input
============================================================ */
.opr-fee .fee-wrap p.tit {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.02em;
}

.opr-fee .fee-wrap p.tit::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 18px;
    background: var(--brand-primary);
}

.opr-fee .fee-wrap table {
    width: auto;
    font-size: 1.35rem;
    border-top: 0;
    border-collapse: collapse;
    overflow: hidden;
}

.opr-fee .fee-wrap thead th {
    height: 44px;
    color: #FFFDF9;
    background: var(--table-head-bg) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 0;
}

.opr-fee .fee-wrap thead th:last-child {
    border-right: 0;
}

.opr-fee .fee-wrap td {
    height: 44px;
    padding: 0 16px;
    background: var(--surface-card);
    border-left: 1px solid var(--table-border);
    border-bottom: 1px solid var(--table-border);
}

.opr-fee .fee-wrap tbody tr:last-child td {
    border-bottom: 0;
}

.opr-fee .fee-wrap td input {
    width: 80%;
    height: 30px;
    font-size: 1.3rem;
    text-align: center;
    color: var(--text-primary);
    background: transparent;
    border: none;
    outline: none;
    border-bottom: 1px solid var(--input-border);
    border-radius: 0;
    box-shadow: none;
    transition: border-color var(--trs-base);
}

.opr-fee .fee-wrap td input:focus {
    border-bottom-color: var(--brand-primary);
    box-shadow: none;
}

.opr-fee .fee-wrap td span {
    padding-left: 5px;
    color: var(--text-muted);
}

.opr-fee .fee-wrap table:nth-child(n+2) {
    margin-top: 12px;
}

.opr-fee .fee-wrap.arboretum-wrap {
    margin-top: 40px;
}

.opr-fee .fee-wrap.arboretum-wrap p.tit::before {
    background: var(--status-success);
}

.opr-fee .btn-wrap {
    margin-top: 32px;
    text-align: right;
}

.opr-fee .btn-wrap button {
    height: 46px;
    padding: 0 30px;
    font-size: 1.45rem;
    font-weight: 700;
}

/* ============================================================
   Alert / Notice
============================================================ */
p#alert {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -12px 0 20px;
    padding: 10px 16px;
    font-size: 1.28rem;
    font-weight: 500;
    color: #925448;
    background: #FCF4F2;
    border: 1px solid #E7C9C2;
    border-left: 3px solid var(--status-danger);
    border-radius: var(--radius-md);
}

/* ============================================================
   Popup
============================================================ */
#fee-over-pop {
    position: fixed;
    right: 0;
    bottom: 0;
    width: calc(100vw - var(--sidebar-width));
    height: calc(100vh - var(--header-height));
    background: rgba(32, 24, 18, 0.46);
    z-index: 150;
    backdrop-filter: blur(2px);
}

#fee-over-pop .inner-group {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 520px;
    padding: 42px 36px 34px;
    transform: translate(-50%, -50%);
    text-align: center;
    overflow: hidden;
}

#fee-over-pop .inner-group::before {
    content: "";
    position: absolute;
    top: 0;
    left: 28px;
    right: 28px;
    height: 2px;
    background: linear-gradient(90deg,
            rgba(138, 154, 134, 0.08) 0%,
            rgba(107, 81, 55, 0.56) 50%,
            rgba(73, 134, 58, 0.08) 100%);
}

#fee-over-pop .inner-group p {
    margin: 14px 0 26px;
    font-size: 1.95rem;
    font-weight: 700;
    line-height: 1.55;
    color: var(--text-primary);
    white-space: pre-line;
    letter-spacing: -0.02em;
}

#fee-over-pop .inner-group button {
    height: 44px;
    padding: 0 30px;
    font-size: 1.45rem;
    font-weight: 700;
}

/* ============================================================
   Form-specific
============================================================ */
.info-group {
    margin: 28px 0;
}

.info-group .table-wrap td p.result {
    width: 260px;
    height: 36px;
    line-height: 34px;
    text-align: center;
    font-size: 1.35rem;
    color: var(--text-primary);
    background: #F7F2EC;
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
}

.info-group .table-wrap td p.result.bold {
    font-weight: 700;
}

.info-group .table-wrap select {
    width: 260px;
}

.info-group .table-wrap input[type="number"],
.info-group .table-wrap input[type="date"] {
    width: 260px;
    text-align: center;
}

.info-group .table-wrap input[type="date"].write {
    border-color: var(--brand-primary);
    background: #FFFDF9;
}

.coc-group {
    float: left;
    width: 580px;
}

.flat-box .flat-right-group {
    float: right;
    width: 560px;
}

.coc-group .id-numb input[type="number"] {
    width: 100px;
}

.coc-group .id-numb span {
    display: inline-block;
    margin: 0 5px;
    font-size: 1.55rem;
    color: var(--text-muted);
    font-weight: 700;
}

.coc-group .address .zip-code {
    width: 160px;
}

.coc-group .address .detail-add {
    display: block;
    width: 400px;
    margin-top: 5px;
}

.dcs-group .table-wrap {
    height: 138px;
    background: var(--surface-card);
    overflow: hidden;
    overflow-y: auto;
}

.dcs-group td {
    text-align: center;
    cursor: pointer;
}

/* ============================================================
   Misc utilities
============================================================ */
.table-wrap-mt {
    margin-top: 28px;
}

.new-table-wrap .table-wrap {
    float: none;
    overflow-x: auto;
}

.new-table-wrap .table-wrap table {
    min-width: 600px;
}

.new-table-wrap .table-wrap td {
    border: 1px solid var(--table-border);
}

.new-table-wrap .table-wrap tr.total td {
    font-weight: 700;
    color: var(--text-primary);
    background: var(--table-th-soft-2);
    border: 1px solid var(--table-border);
}

/* ============================================================
   Print
============================================================ */
@media print {

    #snb,
    .nav-wrap {
        display: none;
    }

    main {
        padding-top: 15px;
    }

    .main-wrap.co-area {
        width: auto;
        margin: 10px;
        padding-bottom: 0;
    }

    @page {
        margin: 0mm;
    }
}

/* ============================================================
   Responsive
============================================================ */
@media screen and (max-width: 1479px) {
    .main-wrap.co-area {
        padding: 0 28px 72px;
    }
}
.account-page .acc-card {
    background: var(--surface-card); border: 1px solid var(--surface-border);
    border-radius: var(--radius-xl); box-shadow: var(--shadow-sm);
    overflow: hidden; margin-bottom: 20px;
}

.account-page {
    min-width: 800px !important;
    max-width: 800px !important;
}

.account-page .acc-card-wrap {
    display: flex;
    column-gap: 30px;
}

.account-page .acc-card-head {
    background: var(--table-head-bg); color: var(--table-head-text);
    padding: 12px 18px; font-size: 1.5rem; font-weight: 700;
    display: flex; align-items: center; gap: 8px;
}
.account-page .acc-card-head i { font-size: 1.5rem; }
.account-page .acc-card-body { padding: 20px 24px; }
.account-page .acc-row {
    display: flex; align-items: center; margin-bottom: 14px;
}
.account-page .acc-row:last-child { margin-bottom: 0; }
.account-page .acc-label {
    width: 140px; flex-shrink: 0;
    font-size: 1.35rem; font-weight: 600; color: var(--text-secondary);
}
.account-page .acc-value {
    flex: 1; font-size: 1.35rem; color: var(--text-primary);
}
.account-page .acc-value input[type="password"] {
    width: 100%; max-width: 340px; height: 38px;
    padding: 0 12px; font-size: 1.3rem;
    border: 1px solid var(--input-border); border-radius: var(--radius-md);
    background: var(--input-bg); color: var(--text-primary);
}
.account-page .acc-value input[type="password"]:focus {
    outline: none; border-color: var(--input-focus);
    box-shadow: 0 0 0 2px rgba(124,102,80,.12);
}
.account-page .acc-hint {
    padding: 8px 14px;
    background: #faf6f0; border-left: 3px solid var(--status-warning);
    border-radius: var(--radius-md);
    font-size: 1.2rem; color: var(--text-muted);
    display: flex; align-items: center; gap: 6px;
}
.account-page .acc-btn-area {
    display: flex; justify-content: start; margin-top: 20px;
}
.account-page .acc-btn-area .btn-write { min-width: 160px; text-align: center; }


.cd-detail-lock-wrap {
    position: relative;
}
.cd-detail-lock-wrap.is-locked {
    overflow: hidden;
}
.cd-detail-lock-overlay {
    position: absolute !important;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(24, 24, 24, 0.85);
    z-index: 50;
    display: flex;
    /* align-items: center; */
    justify-content: center;
    pointer-events: auto;
}
.cd-detail-lock-card {
    max-width: 760px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
    color: #fff;
    padding: 200px 28px;
}
.cd-detail-lock-card i {
    font-size: 8rem;
    line-height: 1;
}
.cd-detail-lock-card p {
    margin: 0;
    font-size: 2rem;
    line-height: 1.7;
    font-weight: 700;
    word-break: keep-all;
}


.gnb > li > a.has-notice-dot {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.gnb-notice-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #e53935;
    display: inline-block;
    margin-left: 6px;
    box-shadow: 0 0 0 2px #fff;
    flex: 0 0 auto;
}
