:root {
    --module-navigation-width:300px;
    --app-bg:#f2f4f9; --sidebar:#fff; --surface:#fff; --surface-2:#f8f9fc; --surface-hover:#f1f2fa;
    --border:#e9ecf3; --text:#1e2433; --muted:#8a93a6; --accent:#4645d8; --accent-light:#4645d8; --accent-soft:#eef0fd;
    --panel-bg:var(--surface); --panel-color:var(--surface); --surface-color:var(--surface-2); --input-bg:var(--surface-2); --border-color:var(--border);
    --text-color:var(--text); --text-muted:var(--muted); --muted-color:var(--muted); --active-color:var(--accent);
    --navigation-selection-background:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 14%,var(--surface));
    --navigation-selection-foreground:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 82%,var(--text));
    --login-button-bg:linear-gradient(135deg,#6571ed,#525fd5); --login-button-hover-bg:linear-gradient(135deg,#6571ed,#525fd5);
    --login-button-text:#fff; --login-button-shadow:#5663dc3a; --login-button-hover-filter:brightness(1.08);
    --danger:#dc4c64; --danger-soft:#fff0f2;
    --login-brand-bg:radial-gradient(circle at 12% 18%,#6878f01f 0,transparent 33%),linear-gradient(145deg,#f7f8ff 0%,#eef1fb 54%,#e7ebf6 100%);
    --login-brand-text:#17213a; --login-brand-muted:#5f6d84; --login-brand-grid:#43506b0d; --login-brand-ring:#6671df24;
    --rz-body-background-color:var(--app-bg); --rz-base-background-color:var(--surface); --rz-card-background-color:var(--surface); --rz-card-flat-background-color:var(--surface);
    --rz-text-title-color:var(--text); --rz-text-color:var(--text); --rz-text-secondary-color:var(--muted); --rz-text-tertiary-color:var(--muted); --rz-text-disabled-color:#9aa5b5;
    --rz-input-background-color:var(--surface-2); --rz-input-value-color:var(--text); --rz-input-placeholder-color:var(--muted); --rz-input-border:1px solid var(--border);
    --rz-input-hover-background-color:var(--surface); --rz-input-hover-border:1px solid var(--accent); --rz-input-focus-background-color:var(--surface); --rz-input-focus-border:1px solid var(--accent); --rz-input-focus-shadow:0 0 0 3px var(--accent-soft);
    --rz-input-disabled-background-color:var(--surface-hover); --rz-input-disabled-color:var(--muted); --rz-input-disabled-border:1px solid var(--border);
    --rz-grid-background-color:var(--surface); --rz-grid-header-background-color:var(--surface-2); --rz-grid-header-color:var(--text); --rz-grid-cell-color:var(--text); --rz-grid-stripe-background-color:var(--surface-2); --rz-grid-stripe-color:var(--text); --rz-grid-border:1px solid var(--border); --rz-grid-cell-border:1px solid var(--border); --rz-grid-header-cell-border:1px solid var(--border); --rz-grid-hover-background-color:var(--surface-hover); --rz-grid-hover-color:var(--text); --rz-grid-selected-background-color:var(--accent-soft); --rz-grid-selected-color:var(--text);
    --rz-pager-background-color:var(--surface); --rz-pager-border:1px solid var(--border); --rz-pager-summary-color:var(--muted); --rz-dropdown-open-background-color:var(--surface); --rz-dropdown-panel-border:1px solid var(--border); --rz-dropdown-item-hover-background-color:var(--surface-hover); --rz-dropdown-item-hover-color:var(--text); --rz-dropdown-item-selected-background-color:var(--accent-soft); --rz-dropdown-item-selected-color:var(--accent-light); --rz-numeric-button-background-color:var(--surface-2); --rz-numeric-button-color:var(--muted);
}
[data-bs-theme="dark"] {
    --app-bg:#10111b; --sidebar:#171826; --surface:#171826; --surface-2:#202131; --surface-hover:#292a3d;
    --border:#303145; --text:#f1f2f8; --muted:#9ca3b8; --accent:#7775f0; --accent-light:#aaa9ff; --accent-soft:#2a2b50;
    --navigation-selection-background:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 22%,var(--surface));
    --navigation-selection-foreground:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 72%,var(--text));
    --danger:#ff7188; --danger-soft:#3a2029; --rz-text-disabled-color:#667286;
    --login-brand-bg:radial-gradient(circle at 12% 18%,#777cf022 0,transparent 33%),linear-gradient(145deg,#161d35 0%,#111726 54%,#0b101b 100%);
    --login-brand-text:#f7f8ff; --login-brand-muted:#aeb7c9; --login-brand-grid:#ffffff0a; --login-brand-ring:#8b94ff33;
}
[data-bs-theme="igs"] {
    color-scheme:light;
    --app-bg:#f7f8fa; --sidebar:#23272e; --surface:#fff; --surface-2:#f7f8fa; --surface-hover:#fdefe0;
    --border:#e5e8ec; --text:#33373e; --muted:#6e7580; --accent:#f5821f; --accent-light:#c85f00; --accent-soft:#fdefe0;
    --navigation-selection-background:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 14%,var(--surface));
    --navigation-selection-foreground:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 82%,var(--text));
    --danger:#dc3545; --danger-soft:#fff0f2; --rz-text-disabled-color:#8a919c;
    --login-brand-bg:radial-gradient(circle at 12% 18%,#f5821f24 0,transparent 33%),linear-gradient(145deg,#33373e 0%,#23272e 58%,#1b1f25 100%);
    --login-brand-text:#fff; --login-brand-muted:#c8cdd5; --login-brand-grid:#ffffff0a; --login-brand-ring:#f5821f40;
    --rz-primary:#f5821f; --rz-primary-light:#f5c293; --rz-primary-lighter:#fdefe0; --rz-primary-dark:#d86b08; --rz-primary-darker:#b95600;
    --rz-on-primary:#fff; --rz-link-color:#c85f00; --rz-link-hover-color:#b95600;
    --rz-focus-color:#f5821f; --rz-outline-color:#f5821f;
    --login-button-bg:#f5821f; --login-button-hover-bg:#d86b08; --login-button-text:#fff;
    --login-button-shadow:#f5821f42; --login-button-hover-filter:none;
    --bs-body-color:#33373e; --bs-body-bg:#f7f8fa; --bs-border-color:#e5e8ec;
    --bs-link-color:#c85f00; --bs-link-hover-color:#b95600; --bs-emphasis-color:#23272e;
}
[data-bs-theme="igs"] .sidebar {
    --border:#4a505a; --text:#fff; --muted:#c8cdd5; --surface-2:#33373e;
    --surface-hover:#33373e; --accent-light:#f5c293; --accent-soft:#33373e;
}
[data-bs-theme="igs"] .app-shell {
    --navigation-active-background:#f5821f !important;
    --navigation-active-foreground:#23272e !important;
}
[data-bs-theme="igs-dark"] {
    color-scheme:dark;
    --app-bg:#111318; --sidebar:#0d0f13; --surface:#1c2026; --surface-2:#252a31; --surface-hover:#302a25;
    --border:#343a42; --text:#f4f5f7; --muted:#a7adb6; --accent:#f5821f; --accent-light:#f5c293; --accent-soft:#3a2a1f;
    --navigation-selection-background:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 22%,var(--surface));
    --navigation-selection-foreground:color-mix(in srgb,var(--navigation-active-background,var(--accent)) 68%,var(--text));
    --danger:#ff7188; --danger-soft:#3a2029; --rz-text-disabled-color:#747b85;
    --login-brand-bg:radial-gradient(circle at 12% 18%,#f5821f2e 0,transparent 33%),linear-gradient(145deg,#23272e 0%,#171a1f 58%,#0d0f13 100%);
    --login-brand-text:#fff; --login-brand-muted:#c8cdd5; --login-brand-grid:#ffffff0a; --login-brand-ring:#f5821f4d;
    --rz-primary:#f5821f; --rz-primary-light:#f5c293; --rz-primary-lighter:#3a2a1f; --rz-primary-dark:#d86b08; --rz-primary-darker:#b95600;
    --rz-on-primary:#fff; --rz-link-color:#f5c293; --rz-link-hover-color:#ffd2aa;
    --rz-focus-color:#f5821f; --rz-outline-color:#f5821f;
    --bs-body-color:#f4f5f7; --bs-body-bg:#111318; --bs-border-color:#343a42;
    --bs-link-color:#f5c293; --bs-link-hover-color:#ffd2aa; --bs-emphasis-color:#fff;
}
[data-bs-theme="igs-dark"] .topbar {
    background:#111318;
    border-bottom-color:#343a42;
}
[data-bs-theme="igs-dark"] .sidebar {
    --border:#343a42; --text:#fff; --muted:#c8cdd5; --surface-2:#1c2026;
    --surface-hover:#252a31; --accent-light:#f5c293; --accent-soft:#302a25;
}
[data-bs-theme="igs-dark"] .app-shell {
    --navigation-active-background:#f5821f !important;
    --navigation-active-foreground:#23272e !important;
}
html, body { margin: 0; font-family: Inter, Pretendard, "Noto Sans KR", "Segoe UI", sans-serif; background: var(--app-bg); }
body { color:var(--text); }
.rz-card { background:var(--surface); color:var(--text); border-color:var(--border); box-shadow:none; }
.rz-data-grid,.rz-grid-table,.rz-grid-table thead,.rz-grid-table tbody,.rz-grid-table tr,.rz-grid-table td,.rz-grid-table th { background-color:var(--surface); color:var(--text); border-color:var(--border); }
.rz-grid-table thead th { background-color:var(--surface-2); }
.rz-data-row:nth-child(even) td { background-color:var(--surface-2); color:var(--text); }
.rz-data-row:hover td { background-color:var(--surface-hover); color:var(--text); }
.rz-cell-data,.rz-column-title,.rz-paginator,.rz-paginator-summary { color:var(--text); }
.rz-textbox,.rz-textarea,.rz-numeric,.rz-dropdown,.rz-dropdown-panel,.rz-multiselect-panel { background:var(--surface-2); color:var(--text); border-color:var(--border); }
.rz-textbox:hover,.rz-textarea:hover,.rz-numeric:hover,.rz-dropdown:hover { background:var(--surface); border-color:var(--accent); color:var(--text); }
.rz-textbox:focus,.rz-textarea:focus,.rz-numeric:focus-within,.rz-dropdown:focus-within { background:var(--surface); color:var(--text); border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.rz-dropdown-item { color:var(--text); }
.rz-dropdown-item:hover { background:var(--surface-hover); color:var(--text); }
.rz-placeholder,.rz-dropdown-label.rz-placeholder { color:var(--muted); }
.rz-state-disabled,.rz-button:disabled { opacity:.55; }
[data-bs-theme="igs"] :is(.rz-button.rz-primary,.rz-button.primary,.btn-primary,button.primary,a.primary),
[data-bs-theme="igs-dark"] :is(.rz-button.rz-primary,.rz-button.primary,.btn-primary,button.primary,a.primary) {
    color:#fff !important;
    --bs-btn-color:#fff;
    --bs-btn-hover-color:#fff;
    --bs-btn-active-color:#fff;
    --bs-btn-disabled-color:#fff;
}
button, a { transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
button:focus-visible, a:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 40%, transparent); outline-offset: 2px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }.page-heading h1 { margin: 5px 0; font-size: 1.85rem; }.page-heading p { margin: 0; color: var(--muted); }
.eyebrow { color: var(--accent-light); font-size: .68rem; font-weight: 800; letter-spacing: .14em; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.metric-card.rz-card, .dashboard-card.rz-card { color: var(--text); background: var(--surface); border: 1px solid var(--border); box-shadow: none; border-radius: 14px; }
.metric-card.rz-card { display: flex; align-items: center; gap: 14px; padding: 20px; }.metric-card > div:last-child { display: flex; flex-direction: column; }.metric-card span, .metric-card small { color: var(--muted); }.metric-card strong { font-size: 1.65rem; }.metric-card small { font-size: .72rem; }
.metric-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; font-size: 1.25rem; }.metric-icon.blue { color:#60a5fa;background:#1e3a5f55; }.metric-icon.violet { color:#a78bfa;background:#4c1d9555; }.metric-icon.green { color:#34d399;background:#064e3b55; }.metric-icon.amber { color:#fbbf24;background:#78350f55; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr); gap: 20px; }.dashboard-card.rz-card { padding: 22px; }
.card-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }.card-heading h2 { margin: 3px 0 0; font-size: 1.08rem; }
.document-item { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px 0; border-top: 1px solid var(--border); }.document-item > div { display: flex; flex-direction: column; }.document-item small, .timeline small { color: var(--muted); }.document-type { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 9px; background: var(--surface-2); color: var(--accent-light); font-size: .72rem; font-weight: 700; }
.icon-button.compact { width: 34px; height: 34px; }.timeline { list-style: none; padding: 0; margin: 0; }.timeline li { position: relative; display: grid; grid-template-columns: 54px 1fr; gap: 14px; padding: 13px 0; }.timeline li::before { content:""; position:absolute; left:59px; top:20px; width:7px; height:7px; border-radius:50%; background:var(--border); }.timeline li.active::before { background:var(--accent); box-shadow:0 0 0 5px var(--accent-soft); }.timeline time { color:var(--muted); font-size:.78rem; }.timeline div { display:flex; flex-direction:column; padding-left:10px; }
.valid.modified:not([type=checkbox]) { outline:1px solid #26b050; }.invalid { outline:1px solid #e50000; }.validation-message { color:#e50000; }
.empty-state { min-height:300px; display:grid; place-items:center; align-content:center; text-align:center; color:var(--muted); }.empty-state i { color:var(--accent-light); font-size:2.5rem; }.empty-state h2 { color:var(--text); margin:14px 0 4px; font-size:1.2rem; }.empty-state p { margin:0; }
.main-widget.rz-card { background:var(--surface); color:var(--text); border:1px solid var(--border); box-shadow:none; }
.sidebar .nav-link { display:flex; align-items:center; gap:.5rem; }
.sidebar .nav-link .nav-count { margin-left:.125rem; }

/* 사용자 업무 모듈의 좌측 서브 내비게이션 공통 디자인 */
.module-sidebar {
    min-width: 0;
    overflow: auto;
    border-color: var(--border) !important;
    background: var(--surface-2) !important;
    color: var(--text);
}

.module-sidebar-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: .75rem !important;
    min-height: 62px;
    margin: 0 0 1rem !important;
    padding: 0 .35rem 1rem !important;
    border-bottom: 1px solid var(--border) !important;
    background: transparent !important;
}

.module-sidebar-header > div {
    display: block !important;
    min-width: 0;
}

.module-sidebar-header span {
    display: block;
    color: var(--accent-light);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.module-sidebar-header h2 {
    margin: .15rem 0 0;
    color: var(--text);
    font-size: 1.35rem;
    line-height: 1.15;
}

.module-sidebar-header small {
    display: block;
    margin-top: .2rem;
    color: var(--muted);
    font-size: .72rem;
}

.module-sidebar-header > i,
.module-sidebar-header > button {
    display: grid;
    flex: none;
    width: 36px;
    height: 36px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--accent-light);
}

.module-sidebar button.active,
.module-sidebar .active > button,
.module-sidebar .tree-row.active,
.module-sidebar .folder-row.active {
    background: var(--navigation-selection-background) !important;
    color: var(--navigation-selection-foreground) !important;
    box-shadow: none;
    font-weight: 700;
}

.module-sidebar button:not(:disabled):hover {
    border-color: transparent;
    background: var(--surface-hover);
    color: var(--text);
}

/* 데스크톱 모듈 사이드바의 공통 축소 레일 */
@media (min-width: 901px) {
    .sidebar-collapsed .module-sidebar {
        padding-inline: .65rem !important;
        overflow: hidden;
    }

    .sidebar-collapsed .module-sidebar > :not(.module-sidebar-header):not(.module-primary-action) {
        display: none !important;
    }

    .sidebar-collapsed .module-sidebar .module-sidebar-header {
        justify-content: center !important;
        padding-inline: 0 !important;
    }

    .sidebar-collapsed .module-sidebar .module-sidebar-header > div {
        display: none !important;
    }

    .sidebar-collapsed .module-sidebar > .module-primary-action {
        display: flex !important;
        width: 42px !important;
        min-width: 42px !important;
        height: 42px !important;
        min-height: 42px !important;
        margin-inline: auto !important;
        padding: 0 !important;
        align-items: center;
        justify-content: center;
    }

    .sidebar-collapsed .module-sidebar > .module-primary-action span {
        display: none !important;
    }

    .sidebar-collapsed .module-sidebar > .module-primary-action i {
        margin: 0 !important;
        font-size: 1rem;
    }
}
@media (max-width: 1100px) { .metric-grid { grid-template-columns: repeat(2, 1fr); }.dashboard-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .page-heading { align-items:flex-start; flex-direction:column; }.metric-grid { grid-template-columns:1fr; }.document-item { grid-template-columns:42px 1fr; }.document-item .rz-badge { grid-column:2; justify-self:start; } }

.group-selector { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:14px; padding:14px 16px; border:1px solid var(--border); border-radius:11px; background:var(--surface); }
.group-selector label { display:flex; min-width:280px; flex-direction:column; gap:6px; }
.group-selector label span { color:var(--muted); font-size:.72rem; font-weight:700; }
.group-selector select { height:42px; padding:0 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); color:var(--text); }
.group-selector small { color:var(--muted); }
@media (max-width: 700px) { .group-selector { align-items:flex-start; flex-direction:column; }.group-selector label { box-sizing:border-box; width:100%; min-width:0; } }

.code-result-message,.code-modal-message { display:flex; align-items:center; gap:8px; margin-bottom:14px; padding:11px 13px; border:1px solid #34d39955; border-radius:10px; background:#123b3133; color:#34d399; }
.code-result-message.error,.code-modal-message { border-color:var(--danger); background:var(--danger-soft); color:var(--danger); }
.code-row-edit { display:inline-grid; width:30px; height:30px; place-items:center; border:1px solid var(--border); border-radius:7px; background:transparent; color:var(--muted); }
.code-row-edit:hover { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-light); }
.code-modal-backdrop { position:fixed; inset:0; z-index:1100; display:grid; place-items:center; padding:24px; background:rgb(5 8 15/72%); backdrop-filter:blur(4px); }
.code-edit-modal { overflow:hidden; width:min(650px,100%); max-height:calc(100vh - 48px); border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:0 24px 80px rgb(0 0 0/38%); }
.code-edit-modal>header { display:flex; align-items:flex-start; justify-content:space-between; padding:20px 22px; border-bottom:1px solid var(--border); }
.code-edit-modal header small { color:var(--accent-light); font-size:.62rem; font-weight:800; letter-spacing:.12em; }.code-edit-modal h2 { margin:3px 0 0; font-size:1.2rem; }
.code-edit-modal header button { display:grid; width:32px; height:32px; place-items:center; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); }
.code-modal-body { display:flex; flex-direction:column; gap:13px; padding:20px 22px; }.code-modal-body label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:.75rem; }
.code-field-grid { display:grid; gap:13px; }.code-field-grid.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }.code-modal-body select { height:40px; padding:0 10px; border:1px solid var(--border); border-radius:5px; background:var(--surface-2); color:var(--text); }
.code-edit-modal>footer { display:flex; justify-content:flex-end; gap:9px; padding:14px 22px 20px; border-top:1px solid var(--border); }.code-cancel-button { padding:9px 13px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); color:var(--text); }
@media (max-width:600px) { .code-modal-backdrop { align-items:end; padding:10px; }.code-field-grid.two-columns { grid-template-columns:1fr; } }

.grid-select { box-sizing:border-box; width:100%; height:36px; padding:0 7px; border:1px solid var(--border); border-radius:5px; background:var(--surface-2); color:var(--text); }
.grid-edit-actions { display:flex; justify-content:center; gap:5px; }.grid-edit-actions button { display:grid; width:30px; height:30px; place-items:center; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); color:var(--muted); }.grid-edit-actions button.save { border-color:#34d39988; color:#34d399; }
.code-panel .rz-data-grid .rz-textbox,.code-panel .rz-data-grid .rz-numeric,.code-panel .rz-data-grid .grid-select { box-sizing:border-box; height:32px; min-height:32px; font-size:.78rem; }
.code-panel .rz-data-grid .rz-textbox,.code-panel .rz-data-grid .rz-numeric input { padding-block:4px; padding-inline:9px; }
.code-panel .rz-data-grid .rz-numeric { width:100%; }.code-panel .rz-data-grid .grid-select { padding-inline:7px; }
.code-panel .rz-data-grid .grid-edit-actions button { width:28px; height:28px; }

/* 부서 편집 모달의 계층형 상위 부서 선택 목록 */
.department-form .parent-tree-dropdown { margin-top:.35rem; }
.rz-dropdown-panel .parent-tree-option { display:flex; min-height:34px; align-items:center; gap:9px; color:var(--text); }
.rz-dropdown-panel .parent-tree-option i { width:18px; color:var(--accent-light); text-align:center; }
.rz-dropdown-panel .parent-tree-option span { overflow:hidden; flex:1; text-overflow:ellipsis; white-space:nowrap; }
.rz-dropdown-panel .parent-tree-option small { margin-left:auto; color:var(--muted); font-size:.68rem; font-weight:500; }

/* 부서 사용자 등록 및 수정 모달 */
.users-header-actions,.user-row-actions { display:flex; align-items:center; gap:7px; }
.users-panel .users-header-actions button { display:flex; align-items:center; gap:6px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); }
.users-panel .users-header-actions .add-user-button { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-light); }
.user-row-actions .edit-user-button { display:grid; width:29px; height:29px; place-items:center; border:1px solid var(--border); border-radius:6px; background:var(--surface-2); color:var(--accent-light); }
.department-modal.user-modal { width:min(680px,100%); }
.user-form label > small { display:block; margin-top:5px; color:var(--muted); font-size:.68rem; font-weight:500; }
@media(max-width:620px) { .users-panel .users-header-actions { align-items:flex-end; flex-direction:column; }.user-form .field-row { grid-template-columns:1fr; } }

/* 전역 Radzen 컨트롤 크기: 개별 화면의 rz-*-sm/md 지정값보다 레이아웃 설정을 우선 적용합니다. */
.control-size-xs :is(.rz-input-xs,.rz-input-sm,.rz-input-md,.rz-input-lg,.rz-inputtext,.rz-dropdown,.rz-numeric,.rz-datepicker,.rz-textarea,.rz-textbox) { --rz-input-height:var(--rz-input-size-xs);--rz-input-padding-block:var(--rz-input-padding-block-xs);--rz-input-padding-inline:var(--rz-input-padding-inline-xs);--rz-input-font-size:var(--rz-input-font-size-xs);--rz-input-line-height:calc(var(--rz-input-size-xs) - 2 * var(--rz-input-padding-block-xs) - 2 * var(--rz-border-width)); }
.control-size-sm :is(.rz-input-xs,.rz-input-sm,.rz-input-md,.rz-input-lg,.rz-inputtext,.rz-dropdown,.rz-numeric,.rz-datepicker,.rz-textarea,.rz-textbox) { --rz-input-height:var(--rz-input-size-sm);--rz-input-padding-block:var(--rz-input-padding-block-sm);--rz-input-padding-inline:var(--rz-input-padding-inline-sm);--rz-input-font-size:var(--rz-input-font-size-sm);--rz-input-line-height:calc(var(--rz-input-size-sm) - 2 * var(--rz-input-padding-block-sm) - 2 * var(--rz-border-width)); }
.control-size-md :is(.rz-input-xs,.rz-input-sm,.rz-input-md,.rz-input-lg,.rz-inputtext,.rz-dropdown,.rz-numeric,.rz-datepicker,.rz-textarea,.rz-textbox) { --rz-input-height:var(--rz-input-size-md);--rz-input-padding-block:var(--rz-input-padding-block-md);--rz-input-padding-inline:var(--rz-input-padding-inline-md);--rz-input-font-size:var(--rz-input-font-size-md);--rz-input-line-height:calc(var(--rz-input-size-md) - 2 * var(--rz-input-padding-block-md) - 2 * var(--rz-border-width)); }
.control-size-lg :is(.rz-input-xs,.rz-input-sm,.rz-input-md,.rz-input-lg,.rz-inputtext,.rz-dropdown,.rz-numeric,.rz-datepicker,.rz-textarea,.rz-textbox) { --rz-input-height:var(--rz-input-size-lg);--rz-input-padding-block:var(--rz-input-padding-block-lg);--rz-input-padding-inline:var(--rz-input-padding-inline-lg);--rz-input-font-size:var(--rz-input-font-size-lg);--rz-input-line-height:calc(var(--rz-input-size-lg) - 2 * var(--rz-input-padding-block-lg) - 2 * var(--rz-border-width)); }
.control-size-xs :is(.rz-button-xs,.rz-button-sm,.rz-button-md,.rz-button-lg) { min-width:var(--rz-button-size-xs);min-height:var(--rz-button-size-xs);padding:.125rem .25rem;line-height:1rem;font-size:.75rem; }
.control-size-sm :is(.rz-button-xs,.rz-button-sm,.rz-button-md,.rz-button-lg) { min-width:var(--rz-button-size-sm);min-height:var(--rz-button-size-sm);padding:.25rem .75rem;line-height:1.25rem;font-size:var(--rz-body-font-size); }
.control-size-md :is(.rz-button-xs,.rz-button-sm,.rz-button-md,.rz-button-lg) { min-width:var(--rz-button-size-md);min-height:var(--rz-button-size-md);padding:.5rem 1rem;line-height:1.25rem;font-size:var(--rz-body-font-size); }
.control-size-lg :is(.rz-button-xs,.rz-button-sm,.rz-button-md,.rz-button-lg) { min-width:var(--rz-button-size-lg);min-height:var(--rz-button-size-lg);padding:.875rem 1.5rem;line-height:1.5rem;font-size:1rem; }
.module-sidebar :is(.module-primary-action,.module-sidebar-action) { box-sizing:border-box!important;height:38px!important;min-height:38px!important;padding:.25rem .65rem!important;border-radius:9px!important;gap:6px!important;font-size:.8rem;font-weight:700;line-height:1.2rem; }
.module-sidebar > .module-primary-action { margin-bottom:12px!important; }
.module-sidebar :is(.module-primary-action,.module-sidebar-action) i { flex:0 0 auto;font-size:.95rem;line-height:1; }
.sidebar-collapsed .module-sidebar :is(.module-primary-action,.module-sidebar-action) { width:38px!important;height:38px!important;min-height:38px!important;margin-inline:auto;padding:0!important; }

/* 메일·주소록 등 업무 모듈의 공통 검색 컨트롤 */
.module-search-field {
    display:flex;
    align-items:center;
    gap:.5rem;
    min-height:38px;
    padding:0 .7rem;
    border:1px solid color-mix(in srgb,var(--accent) 72%,var(--border));
    border-radius:10px;
    background:var(--surface);
    color:var(--muted);
    box-shadow:0 1px 2px color-mix(in srgb,var(--accent) 8%,transparent);
    transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.module-search-field:hover { border-color:var(--accent); }
.module-search-field:focus-within {
    border-color:var(--accent);
    background:var(--surface);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);
}
.module-search-field > i { flex:0 0 auto;color:var(--accent); }
.module-search-field input,
.module-search-field input.rz-inputtext {
    min-width:0;
    height:36px;
    padding-block:0;
    border:0!important;
    outline:0;
    background:transparent!important;
    color:var(--text);
    box-shadow:none!important;
}
.module-search-submit {
    min-height:38px!important;
    border:1px solid var(--accent)!important;
    border-radius:9px!important;
    background:var(--accent)!important;
    color:#fff!important;
    font-size:.8rem!important;
    font-weight:700!important;
}
/* EDMS 문서 인쇄 전용 레이아웃 */
.edms-print-sheet{display:none}
@media print{
 @page{size:A4 portrait;margin:14mm}
 body:has(.edms-print-sheet) *{visibility:hidden!important}
 body:has(.edms-print-sheet) .edms-print-sheet,body:has(.edms-print-sheet) .edms-print-sheet *{visibility:visible!important}
 .edms-print-sheet{display:block!important;position:absolute;inset:0;width:100%;background:#fff!important;color:#111!important;font-family:"Malgun Gothic",sans-serif;line-height:1.55;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .edms-print-sheet::before{content:attr(data-watermark);position:fixed;z-index:0;left:50%;top:48%;transform:translate(-50%,-50%) rotate(-32deg);font-size:38pt;font-weight:800;letter-spacing:.08em;color:rgba(120,120,120,.12);white-space:nowrap;pointer-events:none}
 .edms-print-sheet>*{position:relative;z-index:1}
 .edms-print-sheet>header{text-align:center;border-bottom:2px solid #222;padding-bottom:8mm;margin-bottom:5mm}
 .edms-print-sheet>header small{font-size:8pt;letter-spacing:.18em;color:#555!important}
 .edms-print-sheet>header h1{margin:2mm 0;font-size:20pt;overflow-wrap:anywhere}
 .edms-print-sheet>header p{margin:0;font-size:9pt;color:#444!important}
 .edms-print-meta{display:grid;grid-template-columns:24mm 1fr 24mm 1fr;margin:0 0 7mm;border-top:1px solid #777;border-left:1px solid #777;font-size:9pt}
 .edms-print-meta dt,.edms-print-meta dd{margin:0;padding:2.2mm;border-right:1px solid #777;border-bottom:1px solid #777;overflow-wrap:anywhere}
 .edms-print-meta dt{font-weight:700;background:#eee!important;text-align:center}
 .edms-print-sheet h2{margin:5mm 0 2mm;font-size:11pt;border-bottom:1px solid #999;padding-bottom:1mm}
 .edms-print-sheet section p{margin:0;font-size:9pt;white-space:pre-wrap}
 .edms-print-body{min-height:125mm;padding:5mm 1mm;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10pt}
 .edms-print-files,.edms-print-recipients{break-inside:avoid}
 .edms-print-files ol{margin:0;padding-left:7mm;font-size:9pt}.edms-print-files small{color:#555!important}
 .edms-print-sheet>footer{margin-top:8mm;padding-top:2mm;border-top:1px solid #999;text-align:right;font-size:8pt;color:#555!important}
}

/* 전자결재 인쇄 미리보기(.print-preview)는 종이 한 장만 내보내는 화면입니다. */
/* 좌측 메뉴와 상단 막대를 자리에서 빼지 않으면 인쇄물 첫 장에 메뉴가 함께 찍힙니다. */
/* visibility로 감추면 자리는 남아 문서가 밀리고 빈 장이 한 장 더 나오므로 display로 뺍니다. */
@media print{
 body:has(.print-preview) .sidebar,
 body:has(.print-preview) .topbar,
 body:has(.print-preview) #blazor-error-ui{display:none!important}
 body:has(.print-preview) .app-shell{display:block;min-height:0}
 body:has(.print-preview) .app-main{width:100%;margin-left:0}
 body:has(.print-preview) .content{width:auto;max-width:none;margin:0;padding:0}
 body:has(.print-preview) .print-preview{min-height:0}
}
