/* ===== SOURCE: css/style.css ===== */
/* =========================================================
   [대륭 ERP 공통 스타일 시작]
   설명:
   - 전체 화면 기본 설정
   - PC/모바일 공통 레이아웃
   - 메뉴, 버튼, 카드, 표, 입력창, 모달
   - 읽기 쉬운 형식으로 유지
   ========================================================= */

/* =========================================================
   [1. 기본 설정 시작]
   ========================================================= */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}

body {
    font-family: "Malgun Gothic", Arial, sans-serif;
    background: #f4f6f9;
    color: #1f2937;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}
/* =========================================================
   [1. 기본 설정 끝]
   ========================================================= */


/* =========================================================
   [2. 전체 ERP 레이아웃 시작]
   ========================================================= */
.app {
    display: flex;
    min-height: 100vh;
}

/* 왼쪽 고정 메뉴 */
.sidebar {
    width: 270px;
    background: linear-gradient(165deg,#111b32,#172b4d 55%,#10243c);
    color: #ffffff;
    padding: 22px 14px;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    overflow-y: auto;
    box-shadow: 5px 0 20px rgba(15,23,42,.12);
}

/* ERP 제목 */
.brand-wrap{display:flex;align-items:center;gap:11px;padding:1px 7px 20px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#60a5fa,#2563eb);font-size:21px;font-weight:900;box-shadow:0 5px 14px rgba(37,99,235,.34)}
.brand {
    font-size: 19px;
    font-weight: 800;
}

.brand-sub {
    font-size: 11px;
    color: #b8c3d6;
    margin-top:3px;
}
.sidebar-label{margin:0 8px 10px;color:#8ea2c4;font-size:10px;font-weight:800;letter-spacing:1.3px}

/* 오른쪽 업무 화면 */
.main {
    margin-left: 270px;
    width: calc(100% - 270px);
    padding: 20px;
}
/* =========================================================
   [2. 전체 ERP 레이아웃 끝]
   ========================================================= */


/* =========================================================
   [3. 메뉴 시작]
   ========================================================= */
.menu-group {
    margin-bottom: 6px;
}

.menu-head {
    display:flex;align-items:center;justify-content:space-between;
    width: 100%;
    border: 0;
    background: transparent;color:#dce7f8;
    text-align: left;
    padding:11px 10px;border-radius:9px;transition:.18s;
}
.menu-head:hover,.menu-group.open .menu-head{background:rgba(148,163,184,.13);color:#fff}.menu-head-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px}.menu-icon{display:inline-grid;place-items:center;width:20px;color:#93c5fd;font-size:17px;font-weight:700}.menu-chevron{color:#8ea2c4;font-size:19px;transition:.2s}.menu-group.open .menu-chevron{transform:rotate(180deg);color:#bfdbfe}.dashboard-link{margin-bottom:9px;font-weight:700}.dashboard-link .menu-icon{color:#fbbf24}.menu-group.open{background:rgba(15,23,42,.16);border-radius:10px;padding:3px 0 6px}.menu-group.open .menu-head{margin-bottom:4px}

.submenu {
    display: none;
    margin:0 7px 0 18px;padding:3px 0 3px 11px;border-left:1px solid rgba(147,197,253,.26);
}

.submenu.open {
    display: block;
}

.menu-item {
    display:flex;align-items:center;gap:8px;
    width: 100%;
    border: 0;
    background: transparent;
    color: #b9c7dd;
    text-align: left;
    padding:9px 11px;border-radius:7px;font-size:13px;transition:.18s;
}

.menu-item:hover,
.menu-item.active {
    background:linear-gradient(90deg,rgba(59,130,246,.35),rgba(59,130,246,.12));
    color: #ffffff;
}
.menu-item:hover{transform:translateX(2px)}.menu-item.active{box-shadow:inset 3px 0 0 #60a5fa;font-weight:700}

/* STEP81~90 final integration */
.final-panel{display:flex;align-items:center;justify-content:space-between;gap:16px}.final-panel h3{margin:6px 0}.final-panel p{margin:0;color:#64748b;font-size:13px}.step-badge{display:inline-block;border-radius:999px;padding:4px 8px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:800}.history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.history-count{font-size:25px;font-weight:800;margin:7px 0}.search-row{padding:11px 0;border-bottom:1px solid #e2e8f0}.calendar-panel{overflow-x:auto}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.calendar-toolbar .btn{margin-right:5px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav strong{min-width:108px;text-align:center}.calendar-nav .btn{padding:6px 12px;font-size:20px}.calendar-note{font-size:12px;color:#64748b}.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:770px}.cal-head span{padding:9px;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;font-weight:700}.cal-day{min-height:112px;padding:7px;border:1px solid #e2e8f0;background:#fff}.cal-day b{display:block}.cal-day small{display:block;color:#94a3b8;font-size:10px;margin:2px 0}.cal-day em{display:block;color:#dc2626;font-size:10px;font-style:normal}.cal-day.today{background:#eff6ff;box-shadow:inset 0 0 0 2px #60a5fa}.cal-day.holiday b{color:#dc2626}.cal-day.empty{background:#f8fafc}.cal-event{display:block;overflow:hidden;padding:3px 5px;margin-top:3px;border-radius:4px;background:#dbeafe;color:#1e40af;font-size:11px;white-space:nowrap;text-overflow:ellipsis}
/* =========================================================
   [3. 메뉴 끝]
   ========================================================= */


/* =========================================================
   [4. 상단 업무영역 시작]
   ========================================================= */
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.topbar h1 {
    margin: 0 0 5px;
}

.topbar span {
    font-size: 13px;
    color: #667085;
}
/* =========================================================
   [4. 상단 업무영역 끝]
   ========================================================= */


/* =========================================================
   [5. 대시보드 및 카드 시작]
   ========================================================= */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

.card {
    background: #ffffff;
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    padding: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.kpi {
    font-size: 27px;
    font-weight: 800;
    margin-top: 7px;
}
/* =========================================================
   [5. 대시보드 및 카드 끝]
   ========================================================= */


/* =========================================================
   [6. 패널 및 도구영역 시작]
   ========================================================= */
.panel {
    background: #ffffff;
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 16px;
}

.toolbar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
/* =========================================================
   [6. 패널 및 도구영역 끝]
   ========================================================= */


/* =========================================================
   [7. 버튼 시작]
   ========================================================= */
/* =========================================================
   [7. 버튼 끝]
   ========================================================= */


/* =========================================================
   [8. 입력폼 시작]
   ========================================================= */
.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 4px;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #ccd4df;
    border-radius: 6px;
    padding: 8px;
    background: #ffffff;
}

textarea {
    min-height: 80px;
    resize: vertical;
}
/* =========================================================
   [8. 입력폼 끝]
   ========================================================= */


/* =========================================================
   [9. 표 시작]
   ========================================================= */
.table-wrap {
    overflow-x: auto;
}

.table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
}

.table th,
.table td {
    padding: 9px;
    border-bottom: 1px solid #e7ebf0;
    text-align: left;
    white-space: nowrap;
}

.table th {
    background: #f7f8fa;
    font-weight: 700;
}
/* =========================================================
   [9. 표 끝]
   ========================================================= */


/* =========================================================
   [10. 상태표시 시작]
   ========================================================= */
.badge {
    display: inline-block;
    padding: 3px 7px;
    border-radius: 20px;
    background: #eef2ff;
    font-size: 11px;
}

.warn {
    color: #b45309;
    font-weight: 700;
}

.ok {
    color: #047857;
    font-weight: 700;
}

.notice {
    padding: 10px;
    border-radius: 7px;
    background: #fff7ed;
    margin-bottom: 10px;
}
/* =========================================================
   [10. 상태표시 끝]
   ========================================================= */


/* =========================================================
   [11. 모달창 시작]
   ========================================================= */
.modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 100200;
}

.modal.hidden {
    display: none;
}

.modal-box {
    background: #ffffff;
    width: min(800px, 100%);
    max-height: 90vh;
    overflow-y: auto;
    border-radius: 10px;
    padding: 20px;
}

/* STEP105: 모든 등록/수정 모달의 공통 상단 작업바
   저장·미리보기·취소·닫기를 상단에 고정하여 긴 입력폼에서도 바로 사용할 수 있도록 함. */
.modal-box{
    width:min(1180px,96vw);
    max-width:1180px;
    max-height:95vh;
    overflow-y:auto;
    padding:0 20px 20px;
}
.modal-actionbar{
    position:sticky;
    top:0;
    z-index:20;
    display:flex;
    align-items:center;
    gap:16px;
    padding:14px 18px;
    margin:0 -20px 14px;
    background:#fff;
    border-bottom:1px solid #d9e1eb;
    box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.modal-actionbar h2{margin:0;flex:1;min-width:0;font-size:24px;}
.modal-action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.modal-action-buttons .btn{white-space:nowrap;}
.modal-box > .modal-actionbar + *{margin-top:0;}
.modal-box > .quote-section:first-of-type,
.modal-box > .form-grid:first-of-type,
.modal-box > .item-code-builder:first-of-type,
.modal-box > .panel:first-of-type{margin-left:0;margin-right:0;}
@media(max-width:700px){
  .modal-actionbar{align-items:flex-start;flex-direction:column;gap:10px;padding:12px;}
  .modal-actionbar h2{font-size:20px;width:100%;}
  .modal-action-buttons{width:100%;justify-content:flex-start;}
  .modal-action-buttons .btn{flex:1 1 auto;}
}

/* =========================================================
   [11. 모달창 끝]
   ========================================================= */


/* =========================================================
   [12. 모바일 화면 시작]
   ========================================================= */
@media (max-width: 800px) {
    .sidebar {
        width: 190px;
    }

    .main {
        margin-left: 190px;
        width: calc(100% - 190px);
        padding: 12px;
    }

    .topbar {
        align-items: flex-start;
    }

    .topbar .btn {
        display: none;
    }

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

    .card {
        padding: 12px;
    }

    .kpi {
        font-size: 22px;
    }
}

@media (max-width: 520px) {
    .sidebar {
        width: 170px;
    }

    .main {
        margin-left: 170px;
        width: calc(100% - 170px);
        padding: 10px;
    }

    .brand {
        font-size: 17px;
    }

    .brand-sub {
        font-size: 10px;
    }

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

    .panel {
        padding: 12px;
    }
}
/* =========================================================
   [12. 모바일 화면 끝]
   ========================================================= */


/* =========================================================
   [대륭 ERP 공통 스타일 끝]
   ========================================================= */

/* =========================================================
   [STEP32 스타일 시작]
   ========================================================= */

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
    overflow-x: hidden;
}

/* 인증 판정 전에는 ERP 본문을 노출하지 않습니다. */
body.d32-auth-pending .app,
body.d32-auth-active .app {
    visibility: hidden !important;
}

/* 로그인/가입 중에는 브라우저 전체 스크롤을 막습니다. */
body.d32-auth-active {
    overflow: hidden !important;
}

/* 인증 레이어 하나만 전체 화면에 고정합니다. */
.d32-auth-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    padding: 12px;
    box-sizing: border-box;
    background: #f4f6f9;
    overflow: hidden;
}

.d32-auth-overlay.show {
    display: flex;
}

/* 가입 내용이 긴 경우 카드 안에서만 스크롤됩니다. */
.d32-auth-card {
    width: min(480px, 100%);
    max-height: calc(100vh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 24px;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #dfe4ea;
    border-radius: 14px;
    box-shadow: 0 10px 35px rgba(0,0,0,.12);
}

.d32-start-card {
    text-align: center;
}

.d32-logo {
    font-size: 26px;
    font-weight: 800;
}

.d32-system-name {
    margin: 7px 0 20px;
    text-align: center;
    color: #667085;
    font-size: 13px;
}

.d32-start-text {
    margin-bottom: 20px;
    color: #667085;
}

.d32-start-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.d32-start-button,
.d32-primary-button,
.d32-secondary-button,
.d32-back-button {
    width: 100%;
    padding: 11px;
    margin-top: 12px;
    border-radius: 7px;
    cursor: pointer;
    font-weight: 700;
}

.d32-start-button {
    border: 0;
    padding: 13px;
}

.d32-start-button.primary,
.d32-primary-button {
    background: #2563eb;
    color: #ffffff;
    border: 0;
}

.d32-start-button.secondary {
    background: #e9edf2;
    color: #1f2937;
}

.d32-secondary-button,
.d32-back-button {
    border: 1px solid #ccd4df;
    background: #ffffff;
    color: #1f2937;
}

.d32-first-note {
    padding: 10px;
    margin-bottom: 12px;
    border-radius: 8px;
    background: #f5f6f8;
    font-size: 13px;
}

.d32-auth-card label,
.d32-profile label {
    display: block;
    margin: 10px 0 5px;
    font-size: 13px;
    font-weight: 700;
}

.d32-auth-card input,
.d32-auth-card select,
.d32-profile input,
.d32-profile select {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid #ccd4df;
    border-radius: 7px;
    background: #ffffff;
}

.d32-date-select {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 8px;
    margin-bottom: 8px;
}

.d32-check {
    display: flex !important;
    align-items: center;
    gap: 6px;
    width: max-content !important;
    white-space: nowrap;
    font-weight: 400 !important;
}

.d32-check input {
    width: auto !important;
}

.d32-info-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    padding: 12px;
    box-sizing: border-box;
    background: rgba(0,0,0,.45);
    overflow: hidden;
}

.d32-info-modal.show {
    display: flex;
}

.d32-profile {
    position: relative;
    width: min(620px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 24px;
    box-sizing: border-box;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0,0,0,.20);
}

.d32-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.d32-modal-head h2 {
    margin: 0;
}

.d32-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: #eef1f4;
    font-size: 24px;
    cursor: pointer;
}

.d32-success {
    text-align: center;
}

.d32-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: #e8f5e9;
    color: #16803c;
    font-size: 30px;
    font-weight: 800;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.d32-user-tools {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.d32-user-tools button {
    padding: 6px 9px;
    border: 1px solid #ccd4df;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
}

.d32-birthday {
    position: fixed;
    top: 74px;
    right: 18px;
    z-index: 99998;
    padding: 13px 18px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 5px 18px rgba(0,0,0,.15);
    font-weight: 700;
}

@media (max-width: 600px) {
    .d32-auth-card {
        padding: 18px;
    }

    .d32-start-buttons {
        grid-template-columns: 1fr;
    }

    .d32-date-select {
        grid-template-columns: 1fr 1fr;
    }

    .d32-date-select select:first-child {
        grid-column: 1 / -1;
    }

    .d32-user-tools span {
        display: none;
    }

    .d32-profile {
        padding: 18px;
    }
}

/* STEP113-3-2-19 로그인·회원가입 최종 UI */
.d32-approval-alert{
    border-color:var(--dr-primary,#2563eb)!important;
    background:var(--dr-primary,#2563eb)!important;
    color:#fff!important;
    font-weight:800;
}
.d32-approval-wait{text-align:center;}
.d32-approval-wait p{line-height:1.65;color:var(--dr-text-muted,#64748b);}
.d32-approval-summary{display:flex;justify-content:center;gap:10px;align-items:center;margin:16px 0 20px;padding:12px;border:1px solid var(--dr-border,#dbe4ee);border-radius:10px;background:var(--dr-surface-soft,#f8fafc);}
.d32-approval-summary span{color:var(--dr-text-muted,#64748b);}
.admin-approval-section{margin:14px 0 20px;padding:14px;border:1px solid var(--dr-border,#dbe4ee);border-radius:12px;background:var(--dr-surface,#fff);}
.admin-approval-title{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:15px;font-weight:800;color:var(--dr-text,#1f2937);}
.admin-approval-title b{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--dr-primary,#2563eb);color:#fff;font-size:12px;}
.admin-user-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px;}
.admin-user-main small{color:var(--dr-text-muted,#64748b);}
.admin-user-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap;}
.approval-status{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;}
.approval-status.pending{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;}
.approval-status.approved{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;}
.approval-status.rejected{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;}
.approval-status.suspended{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;}
.d32-field-help{margin:-2px 0 8px;color:var(--dr-text-muted,#64748b);font-size:12px;line-height:1.5;}
.admin-rejected-wrap{margin-top:12px;padding:10px 14px;border:1px solid var(--dr-border,#dbe4ee);border-radius:12px;background:var(--dr-surface-soft,#f8fafc);}
.admin-rejected-wrap summary{cursor:pointer;font-weight:800;}
@media(max-width:650px){
  .admin-user-actions{width:100%;margin-left:0;}
  .admin-user-actions .btn{flex:1;}
}

/* =========================================================
   [STEP32 스타일 끝]
   ========================================================= */

/* =========================================================
   [STEP33 품목관리 스타일 시작]
   ========================================================= */
.item-code-builder {
    padding: 16px;
    margin-bottom: 8px;
    border: 1px solid #dfe4ea;
    border-radius: 10px;
    background: #f8fafc;
}

.item-builder-title {
    margin-bottom: 12px;
    font-size: 16px;
    font-weight: 800;
}

.item-code-direct input {
    width: 100%;
    box-sizing: border-box;
    padding: 9px;
    border: 1px solid #ccd4df;
    border-radius: 7px;
}

.item-code-direct small {
    display: block;
    margin-top: 6px;
    color: #667085;
}

.item-master-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 15px 0;
}

.item-code-builder label {
    display: block;
    margin-bottom: 5px;
    font-size: 13px;
    font-weight: 700;
}

.item-code-builder input,
.item-code-builder select {
    width: 100%;
    box-sizing: border-box;
    padding: 9px;
    border: 1px solid #ccd4df;
    border-radius: 7px;
    background: #fff;
}

.item-edit-note {
    margin-bottom: 12px;
    padding: 10px;
    border-radius: 8px;
    background: #f5f6f8;
    font-size: 13px;
}

@media (max-width: 900px) {
    .item-builder-grid,
    .item-master-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .item-builder-grid,
    .item-master-fields {
        grid-template-columns: 1fr;
    }

    .item-builder-grid .item-recommended {
        grid-column: auto;
    }
}
/* =========================================================
   [STEP33 품목관리 스타일 끝]
   ========================================================= */


/* =========================================================
   [기능 시작] STEP34 스크롤 최종 복원
   기준: 브라우저 문서 자체가 유일한 세로 스크롤
   - html/body: 세로 스크롤 허용
   - app/layout/content: 높이 고정 및 overflow 스크롤 금지
   - 메뉴/로그인/개발 테스트 모드/ERP 기능 변경 없음
   ========================================================= */


/* 레이아웃 내부에 별도 스크롤을 만들지 않음 */
.erp-layout,
.app-layout,
.layout,
.main-layout,
main,
.main,
.main-content,
.content,
.content-area,
.page-content,
#content,
#mainContent,
.sidebar,
.side-menu,
nav {
  height: auto;
  min-height: 0;
  overflow: visible;
}
/* =========================================================
   [기능 끝]
   ========================================================= */


/* =========================================================
   [기능 시작] STEP34 스크롤 구조 원인 수정
   핵심:
   1) 문서가 내용 높이만큼 늘어남
   2) 앱/레이아웃/본문에 viewport 높이를 강제하지 않음
   3) 내부 영역에서 별도 스크롤을 만들지 않음
   4) 브라우저 기본 세로 스크롤만 사용
   ========================================================= */

/* 문서 자체가 세로로 늘어나도록 */
html {
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

body {
  margin: 0;
  min-height: 100%;
  height: auto !important;
  overflow-x: hidden;
  overflow-y: visible !important;
}

/* 앱 루트는 내용 높이를 따라간다 */
#app {
  min-height: 100vh;
  height: auto !important;
  overflow: visible !important;
}

/* ERP 전체 레이아웃은 고정 높이를 사용하지 않는다 */
.erp-layout,
.app-layout,
.layout,
.main-layout,
.app-shell,
.shell {
  height: auto !important;
  min-height: 100vh;
  overflow: visible !important;
}

/* 오른쪽 본문도 자체 스크롤을 갖지 않고 문서 높이에 포함 */
main,
.main,
.main-content,
.content,
.content-area,
.page-content,
#content,
#mainContent,
.workspace,
.main-panel {
  height: auto !important;
  max-height: none !important;
  min-height: 0;
  overflow: visible !important;
}

/* flex 부모가 자식 높이를 잘라내지 않도록 */
.erp-layout > *,
.app-layout > *,
.layout > *,
.main-layout > *,
.app-shell > *,
.shell > * {
  min-height: 0;
  max-height: none;
}

/* =========================================================
   [기능 끝]
   ========================================================= */


/* =========================================================
   [기능 시작] STEP34 스크롤 실제 원인 수정
   원인: 기존 STEP32 CSS의 html/body overflow-y:hidden!important
         및 .app/.main/.content max-height:100vh가 문서 스크롤을 막고 있었음.
   처리: 해당 전역 스크롤 잠금만 제거하고 브라우저 기본 스크롤 사용.
   ========================================================= */
html,
body {
    min-height: 100%;
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
}

.app {
    min-height: 100vh;
    height: auto;
    max-height: none;
}

.main {
    height: auto;
    max-height: none;
}

.content {
    height: auto;
    max-height: none;
    overflow: visible;
}
/* =========================================================
   [기능 끝]
   ========================================================= */


/* =========================================================
   [STEP38 견적관리 스타일 시작]
   목적:
   - 견적 입력 모달
   - A4 미리보기
   - 인쇄용 견적서
   ========================================================= */
.quote-modal{
    position:fixed; inset:0; z-index:100000; background:rgba(0,0,0,.48);
    display:flex; align-items:center; justify-content:center; padding:20px;
}
.quote-modal.hidden{display:none}
.quote-modal-box{
    background:#fff; width:min(1500px,97vw); max-height:94vh; overflow:auto;
    border-radius:12px; padding:20px; box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.quote-modal-head,.quote-preview-toolbar{
    display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
.quote-modal-head h2{margin:0}
.quote-modal-head p{margin:4px 0 0;color:#6b7280}
.quote-section{
    border:1px solid #d9dee8; border-radius:10px; padding:16px; margin-bottom:14px;
}
.quote-section h3{margin:0 0 12px}
.quote-form-grid{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;
}
.quote-form-grid>div{display:flex;flex-direction:column;gap:5px}
.quote-form-grid .span-2{grid-column:span 2}
.quote-form-grid label{font-weight:700;font-size:13px}
.quote-form-grid input,.quote-form-grid select,.quote-form-grid textarea{
    width:100%; border:1px solid #cfd6e2; border-radius:7px; padding:9px; background:#fff;
}
.quote-items-wrap{overflow:auto}
.quote-items-table input,.quote-items-table select{width:100%;padding:7px;border:1px solid #cfd6e2;border-radius:5px}
.quote-stamp-status{padding:9px;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc}
.quote-total-box{
    display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap;
}
.quote-total-box>div{
    min-width:180px; display:flex; justify-content:space-between; gap:20px;
    padding:12px 16px; border:1px solid #d9dee8; border-radius:8px; background:#f8fafc;
}
.quote-total-box .grand{font-size:18px}
.quote-form-actions{justify-content:flex-end}
.quote-preview-box{
    background:#e9edf3; width:min(1100px,97vw); max-height:96vh; overflow:auto;
    border-radius:12px; padding:14px;
}
.quote-preview-toolbar{
    background:#fff; padding:10px; border-radius:8px; margin:0 0 12px;
}
.quote-print-area{display:flex;justify-content:center}
.a4-page{
    width:210mm; min-height:297mm; background:#fff; color:#111; padding:10mm;
    box-sizing:border-box; box-shadow:0 3px 18px rgba(0,0,0,.18); font-family:"Malgun Gothic",Arial,sans-serif;
}
.quote-doc-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:7mm}
.quote-doc-company{font-size:20px;font-weight:800}
.quote-doc-small{font-size:10px;margin-top:3px}
.quote-doc-title{font-size:30px;font-weight:900;letter-spacing:12px}
.quote-doc-meta{display:grid;grid-template-columns:repeat(3,1fr);margin-top:4mm;border:1px solid #222}
.quote-doc-meta>div{display:flex}.quote-doc-meta b{background:#f1f1f1;padding:3mm;border-right:1px solid #222}.quote-doc-meta span{padding:3mm;flex:1}
.quote-doc-info,.quote-doc-items{width:100%;border-collapse:collapse;margin-top:4mm}
.quote-doc-info th,.quote-doc-info td,.quote-doc-items th,.quote-doc-items td{border:1px solid #222;padding:2.5mm;font-size:10.5px}
.quote-doc-info th{background:#f4f4f4;width:16%}
.quote-doc-subject{font-weight:800;font-size:15px;margin-top:5mm;padding-bottom:2mm;border-bottom:2px solid #222}
.quote-doc-items th{background:#f1f1f1;text-align:center}
.quote-doc-items td{text-align:center}
.quote-doc-items .left{text-align:left}
.quote-doc-items .num{text-align:right}
.quote-doc-summary{display:flex;justify-content:flex-end;margin-top:4mm}
.quote-doc-summary>div{border:1px solid #222;border-right:0;padding:4mm 6mm;min-width:35mm;text-align:right}
.quote-doc-summary>div:last-child{border-right:1px solid #222}
.quote-doc-summary .grand{font-size:14px;font-weight:800}
.quote-doc-conditions{margin-top:5mm;border:1px solid #222;padding:4mm;font-size:10.5px;line-height:1.8;min-height:24mm}
.quote-doc-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:9mm;font-size:11px}
.quote-doc-date{margin-top:5mm}
.quote-doc-sign{position:relative;min-width:65mm;text-align:right;min-height:25mm;padding-right:4mm}
.quote-doc-company-sign{font-weight:800;margin-bottom:5mm}
.quote-doc-rep-line{position:relative;display:inline-block;font-size:12px;padding-right:9mm;min-height:20mm;line-height:20mm}
.quote-doc-rep-line img{position:absolute;right:-1mm;top:-2mm;width:22mm;height:22mm;object-fit:contain;opacity:.9;z-index:2;pointer-events:none}
@media(max-width:900px){
 .quote-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .quote-form-grid .span-2{grid-column:span 2}
}
@media print{
 html,body{background:#fff!important}
 .quote-modal,.quote-preview-box{position:static!important;background:#fff!important;padding:0!important}
 .quote-preview-toolbar{display:none!important}
 .quote-print-area{display:block!important}
 .a4-page{box-shadow:none!important;margin:0!important}
}
@page{size:A4;margin:0}
/* =========================================================
   [STEP38 견적관리 스타일 끝]
   ========================================================= */


/* =========================================================
   [STEP38 4차 이미지형 견적서 스타일 시작]
   - 제공된 A4 시안의 레이아웃을 기준으로 재구성
   - 공급받는자/공급하는자 2열
   - 품목 기본 10행
   - 하단 대표자 이름 위에 대표 인감 1개
   ========================================================= */
.quote-image-layout{
  padding:7mm 7mm 6mm;
  border:1px solid #cbd5e1;
  font-family:"Malgun Gothic",Arial,sans-serif;
}
.quote-brand-row{display:flex;justify-content:space-between;align-items:flex-start;padding:1mm 1mm 3mm}
.quote-brand-left{display:flex;align-items:center;gap:8px}
.quote-logo-mark{width:15mm;height:18mm;font-family:Arial,sans-serif;font-weight:900;font-size:42px;line-height:18mm;text-align:center;color:#17457e}
.quote-brand-name{font-size:19px;font-weight:900;color:#123c70}
.quote-brand-en{font-size:9px;letter-spacing:.3px}
.quote-brand-sub{font-size:8px;margin-top:1px}
.quote-slogan{text-align:right;font-size:10px;line-height:1.45}
.quote-slogan b{font-size:12px}
.quote-slogan span{font-size:9px}
.quote-black-line{height:1.3px;background:#111}
.quote-title-area{text-align:center;padding:5mm 0 3mm}
.quote-main-title{font-size:29px;font-weight:900;letter-spacing:9px}
.quote-title-en{font-size:11px;letter-spacing:5px;margin-top:1mm}
.quote-meta-grid{display:grid;grid-template-columns:1fr 1.1fr 1.1fr 1fr;border:1px solid #222;margin-bottom:3.5mm}
.quote-meta-grid>div{display:flex;border-right:1px solid #222;min-height:8mm}
.quote-meta-grid>div:last-child{border-right:0}
.quote-meta-grid b{background:#dbe8f6;padding:2.2mm 2.5mm;white-space:nowrap}
.quote-meta-grid span{padding:2.2mm;flex:1;text-align:center}
.quote-party-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm}
.quote-party{border:1px solid #222}
.quote-party-title{background:#dbe8f6;font-size:13px;font-weight:900;padding:2.5mm 3mm}
.quote-party table{width:100%;border-collapse:collapse}
.quote-party th,.quote-party td{border-top:1px solid #cbd5e1;padding:1.8mm 2mm;font-size:9px}
.quote-party th{width:27%;background:#f2f6fa;text-align:center;white-space:nowrap}
.quote-party td{height:4.6mm}
.quote-subject-table{width:100%;border-collapse:collapse;margin-top:3mm}
.quote-subject-table th,.quote-subject-table td{border:1px solid #222;padding:2.3mm;font-size:10px}
.quote-subject-table th{width:13%;background:#dbe8f6}
.quote-image-items{width:100%;border-collapse:collapse;margin-top:3mm;table-layout:fixed}
.quote-image-items th,.quote-image-items td{border:1px solid #222;padding:1.8mm 1.5mm;font-size:8.7px;height:5.6mm}
.quote-image-items th{background:#dbe8f6;font-weight:900;text-align:center}
.quote-image-items th:nth-child(1){width:5%}
.quote-image-items th:nth-child(2){width:14%}
.quote-image-items th:nth-child(3){width:17%}
.quote-image-items th:nth-child(4){width:19%}
.quote-image-items th:nth-child(5){width:7%}
.quote-image-items th:nth-child(6){width:7%}
.quote-image-items th:nth-child(7){width:15%}
.quote-image-items th:nth-child(8){width:16%}
.quote-image-items td{text-align:center}
.quote-image-items .left{text-align:left}
.quote-image-items .num{text-align:right}
.quote-image-total-grid{display:grid;grid-template-columns:1fr 1fr 1.05fr;margin-top:3mm}
.quote-image-total-grid>div{border:1px solid #222;border-right:0;text-align:center}
.quote-image-total-grid>div:last-child{border-right:1px solid #222}
.qt-label{background:#dbe8f6;font-weight:900;padding:2.2mm;border-bottom:1px solid #222;font-size:10px}
.qt-value{font-size:12px;font-weight:900;padding:3mm}
.quote-grand .qt-value{font-size:15px}
.quote-korean-total{display:flex;border:1px solid #222;border-top:0;padding:2mm 3mm;font-size:9px;gap:7mm}
.quote-bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:3mm;margin-top:3mm}
.quote-condition-box,.quote-note-box{border:1px solid #222;display:grid;grid-template-columns:20mm 1fr;min-height:30mm}
.quote-side-label{background:#dbe8f6;font-weight:900;text-align:center;display:flex;align-items:center;justify-content:center;font-size:10px}
.quote-condition-box table{width:100%;border-collapse:collapse}
.quote-condition-box th,.quote-condition-box td{border-bottom:1px solid #cbd5e1;padding:1.7mm 2mm;font-size:8.8px}
.quote-condition-box th{width:27%;background:#f5f7fa}
.quote-condition-box tr:last-child th,.quote-condition-box tr:last-child td{border-bottom:0}
.quote-note-content{padding:3mm;font-size:8.8px;line-height:1.65;white-space:pre-wrap}
.quote-final-area{display:flex;justify-content:space-between;align-items:flex-end;margin-top:6mm;min-height:25mm}
.quote-company-contact{font-size:8.8px;line-height:1.8}
.quote-final-company{font-size:16px;font-weight:900;color:#123c70;margin-bottom:2mm}
.quote-representative{text-align:right;min-width:70mm;position:relative;padding-right:3mm}
.quote-date-line{font-size:10px;margin-bottom:4mm}
.quote-rep-name{position:relative;display:inline-block;font-size:12px;min-height:18mm;line-height:18mm;padding-right:11mm}
.quote-rep-name img{position:absolute;width:22mm;height:22mm;object-fit:contain;right:-1mm;top:-2mm;z-index:2;opacity:.9;pointer-events:none}
@media print{
 .quote-image-layout{border:0}
}

/* =========================================================
 [STEP50 도면·위치별 현장/공정 화면 시작]
 ========================================================= */
.site50{padding:4px}.site50-head,.process50-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.site50-head h2,.process50-head h2{margin:0}.site50-head p,.process50-head p{margin:5px 0 0;color:#64748b}.site50-notice{padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:9px;margin-bottom:14px;font-size:13px}.site50-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:14px}.site50-card{background:#fff;border:1px solid #dbe2ea;border-radius:12px;padding:15px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.site50-title{display:flex;justify-content:space-between;align-items:flex-start}.site50-title h3{margin:0 0 4px}.site50-title p{margin:0;color:#64748b;font-size:13px}.site50-title strong{font-size:24px}.site50-bar{height:8px;background:#e5e7eb;border-radius:9px;overflow:hidden;margin:10px 0}.site50-bar i{display:block;height:100%;background:#2563eb}.site50-meta{display:flex;gap:12px;font-size:12px;color:#64748b;margin-bottom:10px}.draw50{border:1px solid #e2e8f0;border-radius:10px;padding:11px;margin-bottom:10px;background:#fafafa}.draw50-head{display:flex;justify-content:space-between}.draw50-head>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.draw50-head b{font-size:15px}.draw50-head span{font-size:12px;color:#475569}.draw50-head em{font-style:normal;font-size:11px;border:1px solid #cbd5e1;border-radius:999px;padding:3px 7px}.draw50-loc{font-size:13px;margin:8px 0}.draw50-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.stage50{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:6px 3px;cursor:pointer}.stage50 b{display:block;font-size:10px}.stage50 span{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage50 small{display:block;font-size:9px;color:#64748b;margin-top:3px}.stage50.active{border-color:#2563eb}.stage50.done{border-color:#16a34a}.stage50.done small{color:#15803d}.draw50-foot{display:flex;justify-content:space-between;align-items:center;margin-top:7px;font-size:10px;color:#64748b}.empty50,.site50-empty{padding:25px;text-align:center;color:#64748b}.process50{padding:4px}.process50-kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:12px 0}.process50-kpi>div{background:#fff;border:1px solid #dbe2ea;border-radius:10px;padding:13px}.process50-kpi b{display:block;color:#64748b;font-size:12px}.process50-kpi strong{display:block;font-size:22px;margin-top:4px}.process50-table-wrap{overflow:auto;background:#fff;border:1px solid #dbe2ea;border-radius:10px}.process50-table{width:100%;min-width:1200px;border-collapse:collapse}.process50-table th,.process50-table td{border-bottom:1px solid #e2e8f0;padding:9px 8px;font-size:12px;text-align:center;white-space:nowrap}.process50-table th{background:#f1f5f9}.process50-table td:nth-child(1),.process50-table td:nth-child(2),.process50-table td:nth-child(4){text-align:left}.ptype50{font-weight:700}.st50{font-size:11px}.st50.done{font-weight:700}.st50.active{font-weight:700}.process50-legend{margin-top:10px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#475569}
@media(max-width:800px){.site50-grid{grid-template-columns:1fr}.process50-kpi{grid-template-columns:repeat(2,1fr)}.draw50-progress{grid-template-columns:repeat(3,1fr)}}
/* ========================================================= [STEP50 도면·위치별 현장/공정 화면 끝] ========================================================= */
/* ========================================================= [기능 시작] STEP50 도면 파일 관리 보강 */
.site50-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.draw50-file{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:12px;color:#475569}.file50{display:inline-block;padding:5px 8px;border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc}.file50.nofile{color:#94a3b8}.draw50-file small{color:#2563eb}.site50-notice{padding:10px 12px;margin:10px 0 14px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:8px;color:#1e40af;font-size:13px}
/* ========================================================= [기능 끝] ========================================================= */
.inspection64{margin:8px 0;padding:8px 10px;border:1px solid #dbe4ee;border-radius:8px;background:#f8fafc;font-size:12px}

/* =========================================================
   [STEP91 공통 레이아웃 정비 시작]
   목적: 모든 업무 모듈의 버튼·패널·입력폼·표의 높이와 여백을
   같은 기준으로 맞춘다. 개별 업무 로직에는 관여하지 않는다.
   ========================================================= */
:root{--ui-primary:#2563eb;--ui-primary-hover:#1d4ed8;--ui-secondary:#f8fafc;--ui-border:#dbe3ee;--ui-text:#334155;--ui-radius:8px;--ui-control-h:36px}
.panel{border-color:var(--ui-border);border-radius:12px;padding:18px;box-shadow:0 1px 2px rgba(15,23,42,.03)}
.panel h2,.panel h3{margin:0 0 8px;color:#1e293b}.panel>p{color:#64748b;line-height:1.55}
.toolbar{align-items:center;gap:8px}.toolbar .notice{font-size:12px;color:#64748b}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-control-h);padding:0 13px;border:1px solid transparent;border-radius:var(--ui-radius);background:var(--ui-primary);color:#fff;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;box-shadow:none;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.btn:hover{background:var(--ui-primary-hover);transform:translateY(-1px)}.btn:active{transform:translateY(0)}
.btn.primary{background:var(--ui-primary);color:#fff}.btn.secondary{background:var(--ui-secondary);border-color:#cbd5e1;color:#475569}.btn.secondary:hover{background:#eaf0f7;border-color:#94a3b8}.btn.danger{background:#dc2626;color:#fff}.btn.danger:hover{background:#b91c1c}
.btn.small,.table .btn,.process50-table .btn{min-height:30px;padding:0 9px;border-radius:7px;font-size:12px}
.form-grid{gap:14px}.form-grid label{margin-bottom:6px;color:#475569;font-size:12px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.panel input,.panel select,.panel textarea{border:1px solid #cbd5e1;border-radius:var(--ui-radius);color:var(--ui-text);background:#fff}.form-grid input,.form-grid select,.panel input:not([type="checkbox"]),.panel select{min-height:var(--ui-control-h);padding:7px 10px}.form-grid textarea,.panel textarea{padding:9px 10px;line-height:1.45}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.panel input:focus,.panel select:focus,.panel textarea:focus{outline:2px solid rgba(59,130,246,.2);border-color:#60a5fa}
.table-wrap,.process50-table-wrap{border:1px solid var(--ui-border);border-radius:10px}.table th,.table td{padding:10px 11px;border-color:#e5eaf1;font-size:13px;vertical-align:middle}.table th{background:#f8fafc;color:#475569;font-size:12px}.table tbody tr:hover{background:#f8fbff}
.site50-head,.process50-head{gap:12px}.site50-actions,.draw50-foot{gap:7px;flex-wrap:wrap}.draw50-foot{justify-content:flex-start}.site50-card,.draw50{border-color:var(--ui-border)}
@media(max-width:800px){.final-panel,.calendar-toolbar,.site50-head,.process50-head{align-items:flex-start;flex-direction:column}.calendar-nav{align-self:stretch;justify-content:space-between}.panel{padding:14px}.table th,.table td{padding:9px 8px}.sidebar{width:210px}.main{margin-left:210px;width:calc(100% - 210px)}}
/* =========================================================
   [STEP91 공통 레이아웃 정비 끝]
   ========================================================= */

/* =========================================================
   [STEP92 재고·수주 미리보기 보정 시작]
   ========================================================= */
.inventory-page{display:grid;gap:14px}.inventory-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.inventory-head h2{margin:0}.inventory-head p{margin:5px 0 0;font-size:13px}.inventory-actions{display:flex;gap:8px;flex-wrap:wrap}.inventory-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-kpi>div{padding:16px 18px;border:1px solid var(--ui-border);border-radius:12px;background:#fff}.inventory-kpi b{display:block;color:#64748b;font-size:12px}.inventory-kpi strong{display:block;margin-top:6px;font-size:26px;color:#1e293b}.inventory-kpi>div:last-child strong{color:#dc2626}.inventory-list{margin:0}.inventory-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.inventory-toolbar input{width:min(320px,100%)}.inventory-ledger{margin:0}.inventory-ledger h3{font-size:15px}.ledger-row{display:grid;grid-template-columns:110px 1fr 90px 70px 110px;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid #e5eaf1;font-size:13px}.ledger-row:last-child{border-bottom:0}.ledger-row .plus{color:#15803d}.ledger-row .minus{color:#dc2626}.empty-ledger{padding:18px 0;color:#64748b}.po-print-area{overflow:auto;max-height:68vh;padding:8px;background:#e2e8f0}.po-print-area .ord-a4{background:#fff;box-shadow:0 4px 18px rgba(15,23,42,.18)}
@media(max-width:800px){.inventory-head{align-items:flex-start;flex-direction:column}.inventory-kpi{grid-template-columns:1fr}.ledger-row{grid-template-columns:1fr 1fr;gap:5px}.ledger-row span:last-child{grid-column:1/-1}.po-print-area{padding:0}.po-print-area .ord-a4{transform:scale(.7);transform-origin:top left;margin-bottom:-88mm}}
/* =========================================================
   [STEP92 재고·수주 미리보기 보정 끝]
   ========================================================= */

/* =========================================================
 [기능 시작] STEP92 견적서 실물 양식 적용
 - 회사에서 사용하는 기존 견적서 폼을 ERP A4 미리보기로 재현
 - 입력 데이터는 기존 quotes 구조를 그대로 사용
 - 화면 미리보기와 인쇄 결과의 동일한 A4 문서 구조
 ========================================================= */
.quote-company-form{padding:6mm 6mm 5mm;background:#fff;color:#111;font-family:"Malgun Gothic",Arial,sans-serif;border:0;box-sizing:border-box;}
.quote-form-head{display:grid;grid-template-columns:56% 44%;min-height:34mm;align-items:start;gap:4mm}
.quote-form-title-wrap{padding:3mm 5mm 2mm;text-align:center;background:linear-gradient(135deg,#1f6fa9,#0d4f80);color:#fff;min-height:30mm;box-sizing:border-box}
.quote-form-title{font-size:40px;font-weight:900;letter-spacing:14px;line-height:1.05}
.quote-form-title-line{height:1px;background:rgba(255,255,255,.9);width:78%;margin:2mm auto 2mm}
.quote-form-title-en{font-size:13px;letter-spacing:4px;font-weight:700;white-space:nowrap;display:block;line-height:1.1}
/* STEP92-5 production title: keep Korean title on one line */
.production-document-form .quote-form-title{white-space:nowrap;word-break:keep-all;overflow:visible;}
.quote-company-block{position:relative;padding:0 2mm 0 1mm;font-size:12px;line-height:1.58;min-height:32mm}
.quote-company-name{font-size:23px;font-weight:900;letter-spacing:1px;margin-bottom:1mm;color:#0f3156}
.quote-company-en{font-size:10px;letter-spacing:2.5px;font-weight:800;color:#234b70;margin-top:-1mm;margin-bottom:1mm}
.quote-company-business{font-weight:800;color:#153f69;margin-top:.5mm}
.quote-company-stamp{position:absolute;right:1mm;top:2mm;width:21mm;height:21mm;object-fit:contain;opacity:.92}
.quote-paper-top{display:grid;grid-template-columns:56% 44%;gap:4mm;margin-top:3mm}
.quote-paper-left{border:1.2px solid #9ab4cf}
.quote-paper-row{display:grid;grid-template-columns:30mm 1fr;min-height:7.7mm;border-bottom:1px solid #a9bfd2;font-size:12px}
.quote-paper-row:last-child{border-bottom:0}
.quote-paper-row>span{display:flex;align-items:center;justify-content:center;background:#e4eef8;border-right:1px solid #a9bfd2;font-weight:900;white-space:nowrap;color:#172b3f}
.quote-paper-row>b{display:flex;align-items:center;padding:1.2mm 2.5mm;font-weight:600;min-width:0}
.quote-paper-row em{font-style:normal;margin-left:auto;white-space:nowrap;font-weight:600}
.quote-paper-note{border:1.2px solid #9ab4cf;border-radius:3mm;padding:3mm 4mm;font-size:11px;line-height:1.65;background:#f8fbfe;color:#182b3d}
.quote-paper-note-title{font-size:14px;font-weight:900;color:#16558a;margin-bottom:1.5mm}
.quote-paper-note ol{margin:0;padding-left:5mm}
.quote-paper-amount{font-size:12px;font-weight:800;margin:2.2mm 0 1.3mm;border-bottom:2px solid #2d5f88;padding:1mm 2mm;text-align:right}
.quote-paper-amount strong{font-size:18px;margin:0 2mm}
.quote-paper-items{width:100%;border-collapse:collapse;table-layout:fixed}
.quote-paper-items th,.quote-paper-items td{border:1px solid #9db5cb;padding:1mm .8mm;height:6.7mm;font-size:11px}
.quote-paper-items thead th{background:#3979a7;color:#fff;font-weight:900;text-align:center;font-size:12px}
.quote-paper-items th:nth-child(1){width:5%}.quote-paper-items th:nth-child(2){width:20%}.quote-paper-items th:nth-child(3){width:19%}.quote-paper-items th:nth-child(4){width:8%}.quote-paper-items th:nth-child(5){width:8%}.quote-paper-items th:nth-child(6){width:14%}.quote-paper-items th:nth-child(7){width:16%}.quote-paper-items th:nth-child(8){width:10%}
.quote-paper-items td{text-align:center}.quote-paper-items td.left{text-align:left}.quote-paper-items td.num{text-align:right;padding-right:2mm}
.quote-paper-items tbody tr:nth-child(even) td{background:#f7fbff}
.quote-paper-items tfoot th{background:#d8e8f6;text-align:center;padding-left:4mm;font-size:12px}.quote-paper-items tfoot td{font-weight:900;background:#eef6fc}
.quote-paper-items .total-cell{font-size:15px}
.quote-paper-bottom{display:grid;grid-template-columns:61% 39%;gap:4mm;margin-top:3mm}
.quote-paper-remark{border:1.2px solid #9db5cb;min-height:27mm;padding:0 3mm 2mm;font-size:11px;line-height:1.6}
.quote-paper-remark-title{font-weight:900;font-size:13px;padding:2mm 2mm 1.5mm;margin:0 -3mm 1mm;background:#3979a7;color:#fff}
.quote-paper-remark-body{white-space:pre-wrap;min-height:8mm}
.quote-paper-vat{margin-top:1mm}
.quote-paper-summary{border:1.2px solid #9db5cb}
.quote-paper-summary>div{display:flex;min-height:8.5mm;border-bottom:1px solid #9db5cb;font-size:11px}
.quote-paper-summary>div:last-child{border-bottom:0}
.quote-paper-summary span{width:40%;display:flex;align-items:center;justify-content:center;background:#e4eef8;border-right:1px solid #9db5cb;font-weight:900}
.quote-paper-summary b{flex:1;display:flex;align-items:center;justify-content:flex-end;padding:0 3mm;font-size:12px}
.quote-paper-summary .grand{min-height:10mm}.quote-paper-summary .grand span{font-size:12px;background:#3979a7;color:#fff}.quote-paper-summary .grand b{font-size:18px;background:#eef6fc;color:#102d4a}
.quote-paper-summary .korean{font-size:9px}
.quote-paper-footer{display:flex;justify-content:space-between;align-items:flex-end;min-height:25mm;margin-top:3mm;padding:0 2mm}
.quote-footer-slogan{font-size:19px;font-weight:900;line-height:1.35;color:#174d80;font-family:"Malgun Gothic",Arial,sans-serif;transform:rotate(-3deg);padding-left:2mm}
.quote-footer-sign{position:relative;text-align:right;min-width:65mm;font-size:12px;line-height:1.7;padding-right:3mm}
.quote-footer-company{font-size:18px;font-weight:900;color:#123c70;margin-bottom:1mm}
.quote-footer-sign img{position:absolute;width:18mm;height:18mm;object-fit:contain;right:0;top:2mm;opacity:.9;pointer-events:none}
@media print{.quote-company-form{border:0!important;box-shadow:none!important}}
/* ========================================================= [기능 끝] STEP92 견적서 실물 양식 적용 */

/* =========================================================
 [기능 시작] STEP92 견적서 미리보기 도구막대 보강
 ========================================================= */
.quote-preview-toolbar{position:sticky;top:0;z-index:3;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.quote-preview-toolbar strong{font-size:18px;letter-spacing:-.3px}
/* ========================================================= [기능 끝] STEP92 견적서 미리보기 도구막대 보강 */

/* =========================================================
 [기능 시작] STEP92 문서 미리보기 공통 레이아웃 최종 보정
 목적:
 - 견적서 기준의 이미지형 A4 레이아웃을 수주/발주/생산/출고에도 동일 적용
 - grid의 합계+gap으로 우측 영역이 밀리는 현상 방지
 - 우측 회사정보/인감 영역 겹침 방지
 - 모든 미리보기 도구막대의 버튼 색상과 크기 통일
 ========================================================= */
.quote-company-form{width:210mm;max-width:100%;margin:0 auto;overflow:hidden;}
.quote-form-head{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:4mm;}
.quote-company-block{min-width:0;box-sizing:border-box;padding-right:24mm;overflow:hidden;word-break:keep-all;}
.quote-paper-top{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:4mm;}
.quote-paper-left,.quote-paper-note{min-width:0;box-sizing:border-box;overflow:hidden;}
.quote-paper-bottom{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:4mm;}
.quote-paper-remark,.quote-paper-summary{min-width:0;box-sizing:border-box;overflow:hidden;}
.quote-preview-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;padding:10px 12px;border-radius:8px;margin:0 0 12px;box-shadow:0 2px 8px rgba(0,0,0,.08);}
.quote-preview-toolbar strong{font-size:18px;letter-spacing:-.3px;margin-right:auto;white-space:nowrap;color:#163f66;}
.quote-preview-toolbar .btn{border-radius:6px;font-weight:800;min-height:36px;padding:7px 12px;white-space:nowrap;}
.quote-preview-toolbar .btn.primary{background:#3979a7!important;border-color:#3979a7!important;color:#fff!important;}
.quote-preview-toolbar .btn.secondary{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important;}
.quote-preview-toolbar .btn.primary:hover,.quote-preview-toolbar .btn.secondary:hover{filter:brightness(.96);}
#orderPrintArea,#purchasePrintArea,#productionPrintArea,#shippingPrintArea{display:flex;justify-content:center;align-items:flex-start;overflow:visible;min-width:0;}
#orderPrintArea .a4-page,#purchasePrintArea .a4-page,#productionPrintArea .a4-page,#shippingPrintArea .a4-page{width:210mm;min-height:297mm;box-sizing:border-box;margin:0 auto;}
@media(max-width:900px){
 .quote-preview-box{width:calc(100vw - 20px);padding:8px;}
 .quote-preview-toolbar{gap:6px;padding:8px;}
 .quote-preview-toolbar strong{width:100%;margin-right:0;}
 .quote-preview-toolbar .btn{flex:1 1 auto;}
 .quote-form-head,.quote-paper-top,.quote-paper-bottom{grid-template-columns:1fr;}
 .quote-company-block{padding-right:24mm;}
}
/* ========================================================= [기능 끝] STEP92 문서 미리보기 공통 레이아웃 최종 보정 */

/* ========================================================= [기능 시작] 문서 리스트 관리버튼 색상 통일
   견적서 미리보기 버튼과 같은 문서 UI 계열을 사용하되,
   미리보기/입고/수정/복사/삭제의 역할을 한눈에 구분한다.
   데이터/DB 로직에는 영향을 주지 않는다.
   ========================================================= */
.table .btn.action-preview{background:#3979a7!important;border-color:#3979a7!important;color:#fff!important;}
.table .btn.action-preview:hover{background:#316b95!important;border-color:#316b95!important;color:#fff!important;}
.table .btn.action-receive{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important;}
.table .btn.action-receive:hover{background:#d6e6f5!important;border-color:#88a5bf!important;color:#163f66!important;}
.table .btn.action-edit{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important;}
.table .btn.action-edit:hover{background:#d6e6f5!important;border-color:#88a5bf!important;color:#163f66!important;}
.table .btn.action-copy{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important;}
.table .btn.action-copy:hover{background:#d6e6f5!important;border-color:#88a5bf!important;color:#163f66!important;}
.table .btn.danger{background:#c94b5b!important;border-color:#c94b5b!important;color:#fff!important;}
.table .btn.danger:hover{background:#b83d4c!important;border-color:#b83d4c!important;color:#fff!important;}
/* ========================================================= [기능 끝] */

/* =========================================================
 [기능 시작] STEP92 수주/발주/출고 문서 줄바꿈 보정
 목적:
 - 견적서는 현재 확정된 형식을 그대로 유지한다.
 - 수주서/발주서/출고서의 회사명은 한 줄로 표시한다.
 - 우측 안내문의 첫 번째 기준 문구도 한 줄로 표시한다.
 - 문서 데이터/DB 구조에는 영향을 주지 않는다.
 ========================================================= */
.order-document-form .quote-company-name,
.purchase-document-form .quote-company-name,
.shipping-document-form .quote-company-name{
  white-space:nowrap;
  word-break:keep-all;
  font-size:20px;
  letter-spacing:.5px;
  line-height:1.2;
}
.order-document-form .quote-paper-note li:first-child,
.purchase-document-form .quote-paper-note li:first-child,
.shipping-document-form .quote-paper-note li:first-child{
  white-space:nowrap;
  word-break:keep-all;
  font-size:10.5px;
  letter-spacing:-.25px;
}
/* ========================================================= [기능 끝] STEP92 수주/발주/출고 문서 줄바꿈 보정 */

/* ========================================================= [기능 시작] 전체 모듈 버튼 색상 통일
   목적: ERP 모든 메뉴/모듈의 일반 버튼을 견적서 미리보기 버튼 계열 색상으로 통일한다.
   기준: 기본/주요동작 = 진한 파랑, 보조동작 = 연한 파랑, 삭제/위험 = 빨강.
   기존 기능 및 이벤트는 변경하지 않고 시각 스타일만 재정의한다.
   ========================================================= */
:root{
  --erp-btn-primary:#3979a7;
  --erp-btn-primary-hover:#316b95;
  --erp-btn-secondary:#e4eef8;
  --erp-btn-secondary-border:#9db5cb;
  --erp-btn-secondary-text:#163f66;
  --erp-btn-secondary-hover:#d6e6f5;
  --erp-btn-danger:#c94b5b;
  --erp-btn-danger-hover:#b83d4c;
}
.btn,
button.btn{
  background:var(--erp-btn-primary);
  border-color:var(--erp-btn-primary);
  color:#fff;
}
.btn:hover,
button.btn:hover{
  background:var(--erp-btn-primary-hover);
  border-color:var(--erp-btn-primary-hover);
  color:#fff;
}
.btn.primary,
button.btn.primary{
  background:var(--erp-btn-primary);
  border-color:var(--erp-btn-primary);
  color:#fff;
}
.btn.primary:hover,
button.btn.primary:hover{
  background:var(--erp-btn-primary-hover);
  border-color:var(--erp-btn-primary-hover);
  color:#fff;
}
.btn.secondary,
button.btn.secondary{
  background:var(--erp-btn-secondary);
  border-color:var(--erp-btn-secondary-border);
  color:var(--erp-btn-secondary-text);
}
.btn.secondary:hover,
button.btn.secondary:hover{
  background:var(--erp-btn-secondary-hover);
  border-color:#88a5bf;
  color:var(--erp-btn-secondary-text);
}
.btn.danger,
button.btn.danger{
  background:var(--erp-btn-danger);
  border-color:var(--erp-btn-danger);
  color:#fff;
}
.btn.danger:hover,
button.btn.danger:hover{
  background:var(--erp-btn-danger-hover);
  border-color:var(--erp-btn-danger-hover);
  color:#fff;
}
/* 일반 모듈의 툴바/관리 버튼도 동일 기준을 사용한다. */
.toolbar .btn:not(.secondary):not(.danger),
.panel > .btn:not(.secondary):not(.danger),
.inventory-actions .btn:not(.secondary):not(.danger){
  background:var(--erp-btn-primary);
  border-color:var(--erp-btn-primary);
  color:#fff;
}
/* ========================================================= [기능 끝] */


/* =========================================================
   [기능 시작] STEP92-2 문서 인쇄 미리보기 모달
   실제 인쇄는 app.js가 문서만 별도 인쇄창으로 보내므로
   ERP 본 페이지에 인쇄용 전역 CSS를 적용하지 않는다.
   두 번째 인쇄 미리보기 모달은 화면용으로만 유지한다.
   ========================================================= */
.document-print-modal{z-index:100001!important;}
.document-print-modal .document-print-modal-box{
  width:min(1180px,96vw); max-width:1180px; max-height:95vh; overflow:auto;
  padding:14px; background:#eef2f6;
}
.document-print-toolbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#fff;padding:10px 12px;border-radius:8px;margin-bottom:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.document-print-toolbar strong{font-size:18px;color:#163f66;white-space:nowrap;margin-right:auto}
.document-print-toolbar-spacer{display:none}
.document-print-toolbar .btn{border-radius:6px;font-weight:800;min-height:36px;padding:7px 12px;white-space:nowrap}
.document-print-toolbar .btn.primary{background:#3979a7!important;border-color:#3979a7!important;color:#fff!important}
.document-print-toolbar .btn.secondary{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important}
.document-print-stage{display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:8px;min-height:0}
.document-print-page{
  width:210mm;height:297mm;min-height:297mm;flex:0 0 210mm;box-sizing:border-box;
  background:#fff;box-shadow:0 3px 18px rgba(0,0,0,.18);overflow:hidden;
  padding:14.85mm 0;transform:scale(1);transform-origin:top center;
}
/* STEP110-20 현장대장 다중 A4 페이지 미리보기 보정
   현장대장은 한 장짜리 document-print-page가 아니라 여러 A4 sheet를
   세로로 쌓는 구조이므로 공통 미리보기의 고정 높이/overflow:hidden을 해제한다. */
/* STEP110-23 현장대장 미리보기 컨테이너 고정높이 해제
   다중 A4 페이지 래퍼가 document-print-page 안에 들어가므로 부모도 자동 높이로 전환한다. */

.document-print-page.site-ledger-print-wrapper{
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:10mm!important;
  transform:none!important;
}
.document-print-page.site-ledger-print-wrapper>.site-ledger-sheet{
  flex:0 0 297mm!important;
  width:210mm!important;
  min-width:210mm!important;
  max-width:210mm!important;
  height:297mm!important;
  min-height:297mm!important;
  max-height:297mm!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 3px 18px rgba(0,0,0,.18)!important;
  position:relative!important;
}
.document-print-page.site-ledger-print-wrapper>.site-ledger-sheet.site-ledger-landscape{
  flex-basis:210mm!important;
  width:297mm!important;
  min-width:297mm!important;
  max-width:297mm!important;
  height:210mm!important;
  min-height:210mm!important;
  max-height:210mm!important;
}
.document-print-page>.a4-page{
  width:210mm!important;min-width:210mm!important;max-width:210mm!important;
  height:297mm!important;min-height:297mm!important;max-height:297mm!important;
  margin:0!important;box-shadow:none!important;box-sizing:border-box!important;
  transform:scale(.9)!important;transform-origin:top center!important;
}
/* ========================================================= [기능 끝] STEP92-2 문서 인쇄 미리보기 모달 */

/* STEP113-2-8-5-1 툴팁 제거 · 음성입력 버튼 유지 */
.dr-voice-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;margin:4px 0 4px 6px;border:1px solid #b8c7d8;border-radius:8px;background:#fff;color:#1f2937;cursor:pointer;font-size:17px;vertical-align:middle}.dr-voice-btn.listening{outline:3px solid rgba(37,99,235,.18);background:#eff6ff}
@media(max-width:900px){body{overflow-x:hidden}.app{display:block;min-height:100vh}.main{width:100%;margin:0;padding-top:58px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(330px,86vw);z-index:99999;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;display:block!important}.sidebar.mobile-open{transform:translateX(0)}.mobile-header{position:fixed;left:0;right:0;top:0;height:58px;z-index:100000;display:flex!important;align-items:center;justify-content:space-between;padding:8px 12px;background:#111d35;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18)}.mobile-menu-button,.mobile-home-button{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:#223c68;color:#fff;font-size:25px}.mobile-header-title{font-size:21px;font-weight:800}.mobile-drawer-backdrop{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.45);display:none}.mobile-drawer-backdrop.show{display:block}.topbar{margin:0}.content,.main #content{width:100%;max-width:100%;box-sizing:border-box}.grid{grid-template-columns:1fr!important}.form-grid{grid-template-columns:1fr!important}.document-print-stage{overflow:auto!important;justify-content:center!important}.document-print-page{flex:0 0 210mm!important;width:210mm!important;height:297mm!important}}
/* 개발 기록: 단일 README.md를 대시보드에서 확인 */












/* 단일 README.md 개발 기록을 대시보드에서 표시 */
.dr-dev-log-panel .toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dr-development-log{max-height:360px;overflow:auto;margin-top:10px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:13px;line-height:1.65}
.dr-development-log h2{font-size:18px;margin:0 0 10px}
.dr-development-log h3{font-size:15px;margin:18px 0 7px}
.dr-development-log h4{font-size:14px;margin:14px 0 6px}
.dr-development-log p{margin:5px 0}
.dr-development-log ul,.dr-development-log ol{margin:5px 0 8px 20px;padding:0}
.dr-development-log li{margin:3px 0}
.dr-development-log hr{border:0;border-top:1px solid #e2e8f0;margin:12px 0}
.dr-development-log code{padding:1px 5px;border-radius:4px;background:#f1f5f9}
.dr-development-log pre{white-space:pre-wrap;padding:10px;border-radius:8px;background:#f8fafc;overflow:auto}

/* STEP96 거래처관리 선택식 구분/업종 관리 */
.d96-full{grid-column:1/-1}
.d96-check-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.d96-check-item{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8dee8;border-radius:8px;padding:7px 10px;background:#fff;cursor:pointer}
.d96-check-item input{width:auto;margin:0}
.d96-option-list{display:flex;flex-direction:column;gap:8px;max-height:45vh;overflow:auto;margin-top:12px}
.d96-option-row{display:flex;align-items:center;gap:10px;border:1px solid #d8dee8;border-radius:8px;padding:9px 10px;background:#fff}
.d96-option-name{font-weight:600;flex:1}
.d96-option-actions{display:flex;gap:5px;flex-wrap:wrap}
.d96-option-actions .btn{padding:5px 8px}
.muted{font-size:.88em;opacity:.7}
/* STEP96-4 거래처 상세조회 */
.link-btn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;font-weight:600}
.customer-detail-v96 .detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.customer-detail-v96 .tag{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2f7}
.detail-grid-v96{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
.detail-grid-v96>div{display:grid;grid-template-columns:120px 1fr;gap:8px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px}
.detail-grid-v96>div.full{grid-column:1/-1}
.detail-grid-v96 b{font-weight:600}.detail-grid-v96 span{overflow-wrap:anywhere}
.detail-summary-v96{display:flex;justify-content:space-between;gap:10px;margin:12px 0;font-size:13px}
@media(max-width:700px){.detail-grid-v96{grid-template-columns:1fr}.detail-grid-v96>div.full{grid-column:auto}.detail-summary-v96{flex-direction:column}.customer-detail-v96 .table{min-width:650px}}

/* STEP97-1 선택항목 관리 공통 형식: 가로 탭 + 표형 관리 */
.d96-master-tabs,.item-option-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0;}
.d96-master-tabs .btn,.item-option-tabs .btn{white-space:nowrap;}
.d96-master-table,.item-option-tabs + #itemOptionManagerBody .table{min-width:720px;}
.d96-master-table th,.d96-master-table td,.item-option-tabs + #itemOptionManagerBody th,.item-option-tabs + #itemOptionManagerBody td{vertical-align:middle;white-space:nowrap;}
@media(max-width:700px){
 .d96-master-tabs,.item-option-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;}
 .d96-master-tabs .btn,.item-option-tabs .btn{flex:0 0 auto;}
 .d96-master-table,.item-option-tabs + #itemOptionManagerBody .table{min-width:680px;}
}
.dr-sample10-bar{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border:1px solid #dbe5f1;border-radius:10px;background:#f8fbff;font-size:13px;color:#667085}
@media(max-width:640px){.dr-sample10-bar{justify-content:space-between}}

/* STEP98-2-2: 단가 입력칸 스피너 제거 - 1원 단위 위/아래 화살표는 사용하지 않음 */
.unit-price-input::-webkit-inner-spin-button,
.unit-price-input::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.unit-price-input{ -moz-appearance:textfield; appearance:textfield; }

/* STEP98-2-7: 견적/품목 수정 모달을 수주관리 공통 모달 크기로 통일 */
.modal-box:has(.quote-section),
.modal-box:has(.item-code-builder){
    width:min(1180px,96vw);
    max-width:1180px;
    max-height:95vh;
    overflow-y:auto;
}
.modal-box:has(.quote-section) .quote-items-table{min-width:1080px;}
.modal-box:has(.quote-section) .quote-items-wrap{overflow-x:auto;}
.modal-box:has(.item-code-builder) .item-master-fields{max-height:none;}

/* STEP98-2-3: 문서형 입력창 공통 크기 및 금액 입력 가독성 */
.modal-box:has(.quote-form-grid), .modal-box:has(#oTable){width:min(1180px,96vw);max-width:1180px;max-height:95vh;}
.quote-items-table .q-item-price,.quote-items-table .q-item-amount{min-width:150px;}
#oTable .unit-price-input{min-width:150px;}
.unit-price-input{text-align:right;font-variant-numeric:tabular-nums;}


/* STEP105-1: 모든 문서 미리보기의 상단 작업바 표준화 */
.document-print-modal .document-print-modal-box{padding:0 14px 14px;}
.document-print-toolbar{position:sticky;top:0;z-index:50;width:100%;box-sizing:border-box;border-radius:0 0 10px 10px;margin:0 0 12px;padding:12px 14px;min-height:60px;}
.document-print-toolbar strong{font-size:20px;}
@media(max-width:700px){.document-print-toolbar{gap:6px;padding:9px 10px;}.document-print-toolbar strong{width:100%;font-size:18px;}.document-print-toolbar .btn{flex:1 1 auto;min-width:0;padding:7px 9px;}}
/* STEP106 현장관리 표준화 */
.site-row-selected td{background:#eef6ff!important}.site-selected-detail{margin-top:14px}.site-chart-head{display:flex;justify-content:space-between;align-items:end;margin:16px 0 8px}.site-chart-head h3{margin:0}.site-chart-head span{color:#64748b;font-size:13px}.site-process-chart{background:#fff;border:1px solid #dbe2ea;border-radius:10px;padding:14px 16px}.site-chart-row{display:grid;grid-template-columns:130px 1fr 55px;gap:10px;align-items:center;margin:10px 0}.site-chart-track{height:14px;background:#e5e7eb;border-radius:99px;overflow:hidden}.site-chart-track i{display:block;height:100%;background:#2563eb;border-radius:99px}.site-chart-row strong{text-align:right}.site-option-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.site-opt-add{display:flex;gap:8px;margin-bottom:12px}.site-opt-add input{flex:1;min-width:200px}.site-opt-name{width:100%;box-sizing:border-box}.site-option-manager{min-height:420px}.site-option-manager .process50-table-wrap{max-height:55vh;overflow:auto}
@media(max-width:700px){.site-chart-row{grid-template-columns:95px 1fr 48px;font-size:12px}.site-chart-row b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* STEP107-3 공통 미니 달력 */
.dr-date-picker{position:fixed;z-index:2147483000;width:286px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 14px 35px rgba(15,23,42,.22);padding:10px;display:none;box-sizing:border-box}
.dr-date-picker.show{display:block!important}
.dr-date-head{display:grid;grid-template-columns:34px 1fr 78px 34px;gap:5px;align-items:center;margin-bottom:7px}
.dr-date-head button,.dr-date-year-tools button,.dr-date-today{border:1px solid #cbd5e1;background:#f8fafc;border-radius:6px;min-height:30px;cursor:pointer;color:#0f172a;font-weight:700}
.dr-date-head input,.dr-date-head select{height:30px;border:1px solid #94a3b8;border-radius:6px;padding:0 6px;background:#fff;box-sizing:border-box}
.dr-year-box{display:grid;grid-template-columns:28px 1fr;gap:4px;align-items:center}
.dr-year-box span{font-size:10px;font-weight:800;color:#475569}
.dr-year-box input{text-align:center;font-weight:800;font-size:13px}
.dr-nav-btn{font-size:20px;line-height:1}
.dr-date-year-tools{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:4px;margin-bottom:8px;font-size:10px}
.dr-date-year-tools button{padding:4px 2px;white-space:nowrap}
.dr-date-week,.dr-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dr-date-week{font-size:11px;text-align:center;font-weight:700;margin-bottom:3px}
.dr-date-week .sun{color:#dc2626}.dr-date-week .sat{color:#2563eb}
.dr-date-cell{position:relative;height:32px;border:0;background:#fff;border-radius:5px;font-size:12px;cursor:pointer}
.dr-date-cell:hover{background:#eaf3fb}.dr-date-cell.muted{color:#cbd5e1}.dr-date-cell.sun{color:#dc2626!important}.dr-date-cell.sat{color:#2563eb!important}.dr-date-cell.holiday{color:#dc2626!important;font-weight:800}.dr-date-cell.today{box-shadow:inset 0 0 0 2px #60a5fa}.dr-date-cell.selected{background:#334155;color:#fff!important}
.dr-date-cell.holiday:after{content:"";position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#dc2626}
.dr-date-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;min-height:28px;font-size:11px;color:#dc2626}
.dr-date-foot .dr-date-today{padding:4px 9px;color:#334155}
@media(max-width:600px){.dr-date-picker{width:calc(100vw - 24px);max-width:320px}.dr-date-cell{height:34px}}
/* STEP107-8 견적전용 품목 입력 */
.q-custom-note{line-height:1.3}
.quote-items-table .q-item-name,.quote-items-table .q-item-spec{min-width:140px}


/* =========================================================
   STEP108-3 수정: 발주서 A4 미리보기/인쇄 전용 최종 고정
   - 발주서도 견적/수주/생산/출고와 동일한 실물형 문서 구조 사용
   - 공통 모달 내부의 중첩 스케일/반응형 영향 차단
   - 화면과 인쇄가 동일한 A4 비율을 유지
   ========================================================= */
.document-print-stage .po-a4-document{
  width:210mm!important;
  min-width:210mm!important;
  max-width:210mm!important;
  height:297mm!important;
  min-height:297mm!important;
  max-height:297mm!important;
  margin:0!important;
  padding:6mm 6mm 5mm!important;
  box-sizing:border-box!important;
  background:#fff!important;
  color:#111!important;
  overflow:hidden!important;
  transform:none!important;
  transform-origin:top left!important;
  font-family:"Malgun Gothic",Arial,sans-serif!important;
}
.document-print-stage .po-a4-document .quote-form-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;
  gap:4mm!important;
  min-height:34mm!important;
  align-items:start!important;
}
.document-print-stage .po-a4-document .quote-form-title-wrap{
  min-height:30mm!important;
  padding:3mm 5mm 2mm!important;
  box-sizing:border-box!important;
  text-align:center!important;
  background:linear-gradient(135deg,#1f6fa9,#0d4f80)!important;
  color:#fff!important;
}
.document-print-stage .po-a4-document .quote-form-title{
  font-size:40px!important;
  font-weight:900!important;
  letter-spacing:14px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
}
.document-print-stage .po-a4-document .quote-form-title-line{height:1px!important;background:rgba(255,255,255,.9)!important;width:78%!important;margin:2mm auto!important}
.document-print-stage .po-a4-document .quote-form-title-en{font-size:13px!important;letter-spacing:4px!important;font-weight:700!important;white-space:nowrap!important;line-height:1.1!important}
.document-print-stage .po-a4-document .quote-company-block{
  position:relative!important;
  padding:0 2mm 0 1mm!important;
  font-size:12px!important;
  line-height:1.58!important;
  min-height:32mm!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  word-break:keep-all!important;
}
.document-print-stage .po-a4-document .quote-company-name{font-size:20px!important;font-weight:900!important;letter-spacing:.5px!important;line-height:1.2!important;white-space:nowrap!important;color:#0f3156!important;margin-bottom:1mm!important}
.document-print-stage .po-a4-document .quote-company-en{font-size:10px!important;letter-spacing:2.5px!important;font-weight:800!important;color:#234b70!important;margin-top:-1mm!important;margin-bottom:1mm!important}
.document-print-stage .po-a4-document .quote-company-business{font-weight:800!important;color:#153f69!important;margin-top:.5mm!important}
.document-print-stage .po-a4-document .quote-company-stamp{position:absolute!important;right:1mm!important;top:2mm!important;width:21mm!important;height:21mm!important;object-fit:contain!important;opacity:.92!important}
.document-print-stage .po-a4-document .quote-paper-top{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;gap:4mm!important;margin-top:3mm!important}
.document-print-stage .po-a4-document .quote-paper-left{border:1.2px solid #9ab4cf!important;min-width:0!important;overflow:hidden!important}
.document-print-stage .po-a4-document .quote-paper-row{display:grid!important;grid-template-columns:30mm 1fr!important;min-height:7.7mm!important;border-bottom:1px solid #a9bfd2!important;font-size:12px!important}
.document-print-stage .po-a4-document .quote-paper-row:last-child{border-bottom:0!important}
.document-print-stage .po-a4-document .quote-paper-row>span{display:flex!important;align-items:center!important;justify-content:center!important;background:#e4eef8!important;border-right:1px solid #a9bfd2!important;font-weight:900!important;white-space:nowrap!important;color:#172b3f!important}
.document-print-stage .po-a4-document .quote-paper-row>b{display:flex!important;align-items:center!important;padding:1.2mm 2.5mm!important;font-weight:600!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.document-print-stage .po-a4-document .quote-paper-note{border:1.2px solid #9ab4cf!important;border-radius:3mm!important;padding:3mm 4mm!important;font-size:11px!important;line-height:1.65!important;background:#f8fbfe!important;color:#182b3d!important;min-width:0!important;overflow:hidden!important}
.document-print-stage .po-a4-document .quote-paper-note-title{font-size:14px!important;font-weight:900!important;color:#16558a!important;margin-bottom:1.5mm!important}
.document-print-stage .po-a4-document .quote-paper-note ol{margin:0!important;padding-left:5mm!important}
.document-print-stage .po-a4-document .quote-paper-note li:first-child{white-space:nowrap!important;font-size:10.5px!important;letter-spacing:-.25px!important}
.document-print-stage .po-a4-document .quote-paper-amount{font-size:12px!important;font-weight:800!important;margin:2.2mm 0 1.3mm!important;border-bottom:2px solid #2d5f88!important;padding:1mm 2mm!important;text-align:right!important}
.document-print-stage .po-a4-document .quote-paper-amount strong{font-size:18px!important;margin:0 2mm!important}
.document-print-stage .po-a4-document .quote-paper-items{width:100%!important;border-collapse:collapse!important;table-layout:fixed!important}
.document-print-stage .po-a4-document .quote-paper-items th,.document-print-stage .po-a4-document .quote-paper-items td{border:1px solid #9db5cb!important;padding:1mm .8mm!important;height:6.7mm!important;font-size:11px!important;box-sizing:border-box!important}
.document-print-stage .po-a4-document .quote-paper-items thead th{background:#3979a7!important;color:#fff!important;font-weight:900!important;text-align:center!important;font-size:12px!important}
.document-print-stage .po-a4-document .quote-paper-items th:nth-child(1){width:5%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(2){width:20%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(3){width:19%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(4){width:8%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(5){width:8%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(6){width:14%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(7){width:16%!important}.document-print-stage .po-a4-document .quote-paper-items th:nth-child(8){width:10%!important}
.document-print-stage .po-a4-document .quote-paper-items td{text-align:center!important}.document-print-stage .po-a4-document .quote-paper-items td.left{text-align:left!important}.document-print-stage .po-a4-document .quote-paper-items td.num{text-align:right!important;padding-right:2mm!important}.document-print-stage .po-a4-document .quote-paper-items tbody tr:nth-child(even) td{background:#f7fbff!important}.document-print-stage .po-a4-document .quote-paper-items tfoot th{background:#d8e8f6!important;text-align:center!important;font-size:12px!important}.document-print-stage .po-a4-document .quote-paper-items tfoot td{font-weight:900!important;background:#eef6fc!important}.document-print-stage .po-a4-document .quote-paper-items .total-cell{font-size:15px!important}
.document-print-stage .po-a4-document .quote-paper-bottom{display:grid!important;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)!important;gap:4mm!important;margin-top:3mm!important}
.document-print-stage .po-a4-document .quote-paper-remark,.document-print-stage .po-a4-document .quote-paper-summary{min-width:0!important;box-sizing:border-box!important;overflow:hidden!important}
.document-print-stage .po-a4-document .quote-paper-remark{border:1.2px solid #9db5cb!important;min-height:27mm!important;padding:0 3mm 2mm!important;font-size:11px!important;line-height:1.6!important}
.document-print-stage .po-a4-document .quote-paper-remark-title{font-weight:900!important;font-size:13px!important;padding:2mm 2mm 1.5mm!important;margin:0 -3mm 1mm!important;background:#3979a7!important;color:#fff!important}
.document-print-stage .po-a4-document .quote-paper-remark-body{white-space:pre-wrap!important;min-height:8mm!important}
.document-print-stage .po-a4-document .quote-paper-summary{border:1.2px solid #9db5cb!important}
.document-print-stage .po-a4-document .quote-paper-summary>div{display:flex!important;min-height:8.5mm!important;border-bottom:1px solid #9db5cb!important;font-size:11px!important}.document-print-stage .po-a4-document .quote-paper-summary>div:last-child{border-bottom:0!important}
.document-print-stage .po-a4-document .quote-paper-summary span{width:40%!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#e4eef8!important;border-right:1px solid #9db5cb!important;font-weight:900!important}.document-print-stage .po-a4-document .quote-paper-summary b{flex:1!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;padding:0 3mm!important;font-size:12px!important}.document-print-stage .po-a4-document .quote-paper-summary .grand{min-height:10mm!important}.document-print-stage .po-a4-document .quote-paper-summary .grand span{font-size:12px!important;background:#3979a7!important;color:#fff!important}.document-print-stage .po-a4-document .quote-paper-summary .grand b{font-size:18px!important;background:#eef6fc!important;color:#102d4a!important}
.document-print-stage .po-a4-document .quote-paper-footer{display:flex!important;justify-content:space-between!important;align-items:flex-end!important;min-height:25mm!important;margin-top:3mm!important;padding:0 2mm!important}
.document-print-stage .po-a4-document .quote-footer-slogan{font-size:19px!important;font-weight:900!important;line-height:1.35!important;color:#174d80!important;transform:rotate(-3deg)!important;padding-left:2mm!important}.document-print-stage .po-a4-document .quote-footer-sign{position:relative!important;text-align:right!important;min-width:65mm!important;font-size:12px!important;line-height:1.7!important;padding-right:3mm!important}.document-print-stage .po-a4-document .quote-footer-company{font-size:18px!important;font-weight:900!important;color:#123c70!important;margin-bottom:1mm!important}.document-print-stage .po-a4-document .quote-footer-sign img{position:absolute!important;width:18mm!important;height:18mm!important;object-fit:contain!important;right:0!important;top:2mm!important;opacity:.9!important}
@media(max-width:900px){.document-print-stage .po-a4-document .quote-form-head,.document-print-stage .po-a4-document .quote-paper-top,.document-print-stage .po-a4-document .quote-paper-bottom{grid-template-columns:1.2fr 1fr!important}.document-print-stage .po-a4-document{width:210mm!important;min-width:210mm!important;max-width:210mm!important}}
@media print{.document-print-stage .po-a4-document{box-shadow:none!important;transform:none!important}}
/* ========================================================= [STEP108-3 수정 끝] */

/* STEP108-6: 입고서 A4 문서 색상 공통화 — 견적/수주/발주/생산/출고 문서와 동일한 청색 계열 */
.document-print-stage .receipt-a4-document{color:#182b3d!important;background:#fff!important;}
.document-print-stage .receipt-a4-document .quote-form-head{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;gap:4mm!important;align-items:end!important;padding-bottom:3mm!important;border-bottom:2px solid #3979a7!important;}
.document-print-stage .receipt-a4-document .quote-form-title{font-size:29px!important;font-weight:900!important;letter-spacing:5px!important;color:#123c70!important;text-align:center!important;}


.document-print-stage .receipt-a4-document .quote-company-name{color:#0f3156!important;}
.document-print-stage .receipt-a4-document .quote-company-en{color:#234b70!important;}
.document-print-stage .receipt-a4-document .quote-company-business{color:#153f69!important;}
.document-print-stage .receipt-a4-document .quote-paper-amount{border-bottom-color:#2d5f88!important;color:#173f66!important;}
.document-print-stage .receipt-a4-document .quote-paper-amount strong{color:#123c70!important;}
.document-print-stage .receipt-a4-document .quote-paper-items thead th{background:#3979a7!important;color:#fff!important;}
.document-print-stage .receipt-a4-document .quote-paper-items tfoot th{background:#d8e8f6!important;color:#172b3f!important;}
.document-print-stage .receipt-a4-document .quote-paper-items tfoot td{background:#eef6fc!important;color:#102d4a!important;}
.document-print-stage .receipt-a4-document .quote-paper-remark-title{background:#3979a7!important;color:#fff!important;}
.document-print-stage .receipt-a4-document .quote-paper-summary span{background:#e4eef8!important;color:#172b3f!important;}
.document-print-stage .receipt-a4-document .quote-paper-summary .grand span{background:#3979a7!important;color:#fff!important;}
.document-print-stage .receipt-a4-document .quote-paper-summary .grand b{background:#eef6fc!important;color:#102d4a!important;}
.document-print-stage .receipt-a4-document .quote-footer-company{color:#123c70!important;}

/* STEP108-6 재수정: 입고서 제목영역을 기존 확정 문서의 동일한 흰색 제목 형식으로 통일
   - 별도 색상 박스 제거
   - 제목/영문/구분선은 기존 문서 공통 청색 계열 사용
   - 본문 표/요약의 청색 계열은 기존 공통 문서와 동일 유지
*/
.document-print-stage .receipt-a4-document .quote-form-title-wrap{
  background:#fff!important;
  color:#123c70!important;
  min-height:30mm!important;
}
.document-print-stage .receipt-a4-document .quote-form-title{
  color:#123c70!important;
}
.document-print-stage .receipt-a4-document .quote-form-title-line{
  background:#3979a7!important;
}
.document-print-stage .receipt-a4-document .quote-form-title-en{
  color:#234b70!important;
}

/* STEP109 재고관리 */
.inventory109 .inventory-kpi{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:12px 0}.inventory109 .inventory-kpi>div{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px}.inventory109 .inventory-kpi small{display:block;color:#64748b}.inventory109 .inventory-kpi strong{display:block;font-size:22px;margin-top:5px}.inv109-tabs{border-bottom:1px solid #dbe2ea;padding-bottom:8px}.inventory109 .num{text-align:right}.inventory109 .plus{color:#15803d;font-weight:700}.inventory109 .minus{color:#b91c1c;font-weight:700}.inventory-status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700}.inventory-status.normal{background:#ecfdf5;color:#166534}.inventory-status.warn{background:#fff7ed;color:#c2410c}.inv-master-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.inventory109 .small{padding:5px 8px;font-size:11px;margin-right:4px}.inventory109 .form-grid{margin-top:8px}
@media(max-width:760px){.inventory109 .inventory-kpi{grid-template-columns:repeat(2,minmax(120px,1fr))}.inventory109 .toolbar{gap:5px}.inventory109 .btn{font-size:12px;padding:7px 9px}}

/* STEP109 재고관리대장 공통 문서양식 통일 */
.document-print-stage .inventory-ledger-a4 .quote-form-head{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;gap:4mm!important;align-items:end!important;padding-bottom:3mm!important;border-bottom:2px solid #3979a7!important;}
.document-print-stage .inventory-ledger-a4 .quote-form-title-wrap{background:#fff!important;color:#123c70!important;min-height:30mm!important;padding:3mm 5mm 2mm!important;box-sizing:border-box!important;text-align:center!important;}
.document-print-stage .inventory-ledger-a4 .quote-form-title{font-size:29px!important;font-weight:900!important;letter-spacing:5px!important;color:#123c70!important;text-align:center!important;}
.document-print-stage .inventory-ledger-a4 .quote-form-title-line{height:1px!important;background:#3979a7!important;width:78%!important;margin:2mm auto!important;}
.document-print-stage .inventory-ledger-a4 .quote-form-title-en{font-size:13px!important;letter-spacing:4px!important;font-weight:700!important;color:#234b70!important;}
.document-print-stage .inventory-ledger-a4 .quote-company-name{color:#0f3156!important;}
.document-print-stage .inventory-ledger-a4 .quote-company-en,.document-print-stage .inventory-ledger-a4 .quote-company-business{color:#234b70!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-top{margin-top:4mm!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-items{width:100%!important;border-collapse:collapse!important;margin-top:4mm!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-items th{background:#3979a7!important;color:#fff!important;border:1px solid #3979a7!important;padding:2.5mm!important;font-size:10.5px!important;text-align:center!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-items td{border:1px solid #9fb8cb!important;padding:2.5mm!important;font-size:10.5px!important;text-align:center!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-summary{display:flex!important;justify-content:flex-end!important;margin-top:4mm!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-summary span{background:#d8e8f6!important;color:#172b3f!important;padding:3mm 6mm!important;font-weight:700!important;border:1px solid #3979a7!important;}
.document-print-stage .inventory-ledger-a4 .quote-paper-summary strong{background:#eef6fc!important;color:#123c70!important;padding:3mm 6mm!important;border:1px solid #3979a7!important;border-left:0!important;}

/* STEP109-3 재고관리대장 최종 표시 보정 */
@media print, screen {
  .document-print-stage .inventory-ledger-a4 .quote-paper-items { table-layout: fixed !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(1),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(1) {
    width: 24mm !important; min-width: 24mm !important; white-space: nowrap !important; word-break: keep-all !important;
  }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(2),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(2) { width: 38mm !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(3),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(3) { width: 27mm !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(4),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(4) { width: 24mm !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(5),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(5),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(6),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(6) { width: 27mm !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-items th:nth-child(7),
  .document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(7) { width: 30mm !important; }
  .document-print-stage .inventory-ledger-a4 .quote-paper-summary {
    justify-content: flex-end !important; align-items: stretch !important;
  }
  .document-print-stage .inventory-ledger-a4 .quote-paper-summary span {
    width: 42mm !important; min-width: 42mm !important; box-sizing: border-box !important; text-align: center !important;
  }
  .document-print-stage .inventory-ledger-a4 .quote-paper-summary strong {
    width: 24mm !important; min-width: 18mm !important; box-sizing: border-box !important; text-align: center !important;
  }
}

/* STEP109-4 재고관리대장 항목 구분 강화 */
.document-print-stage .inventory-ledger-a4 .quote-paper-items {
  border:1.5px solid #3979a7 !important;
  border-collapse:collapse !important;
  table-layout:fixed !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items th {
  border:1.5px solid #dbeaf5 !important;
  border-right-color:#dbeaf5 !important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.35) !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items th:last-child {
  border-right-color:#dbeaf5 !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items td {
  border:1.5px solid #8eacc2 !important;
  border-right-color:#8eacc2 !important;
  vertical-align:middle !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items tr > * + * {
  border-left:1.5px solid #8eacc2 !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items thead tr > * + * {
  border-left:1.5px solid #dbeaf5 !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items tbody tr:nth-child(even) td {
  background:#f7fbfe !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(1),
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(2),
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(3),
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(7) {
  text-align:center !important;
}
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(4),
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(5),
.document-print-stage .inventory-ledger-a4 .quote-paper-items td:nth-child(6) {
  text-align:right !important;
  padding-right:4mm !important;
}

/* STEP109-5 조회 건수 한줄 표시 보정 */
.document-print-stage .inventory-ledger-a4 .quote-paper-summary strong{width:24mm!important;min-width:24mm!important;white-space:nowrap!important;text-align:center!important;word-break:keep-all!important;overflow:visible!important;}

/* STEP110-17 현장대장 공통 문서 인쇄 형식 / 가로표 자동 전환 */
.site-ledger-print{width:210mm!important;min-height:297mm!important;box-sizing:border-box;background:#fff;color:#111;padding:12mm 10mm!important;font-family:Arial,"Malgun Gothic",sans-serif;}
.site-ledger-print.site-ledger-landscape{width:297mm!important;min-height:210mm!important;padding:10mm!important;}
.site-doc-head{text-align:center;border-bottom:1.5px solid #244b70;padding-bottom:4mm;margin-bottom:5mm}.site-doc-title{font-size:20pt;font-weight:900;letter-spacing:5px;color:#163f66}.site-doc-sub{font-size:8pt;letter-spacing:3px;color:#64748b;margin-top:1mm}.site-doc-info{display:grid;grid-template-columns:1fr 1fr;border:1px solid #9db5cb;margin-bottom:5mm}.site-doc-info>div{display:grid;grid-template-columns:26mm 1fr;min-height:8mm;border-bottom:1px solid #d5e0ea}.site-doc-info>div:nth-child(odd){border-right:1px solid #d5e0ea}.site-doc-info b{background:#edf4fa;padding:2mm 2.5mm}.site-doc-info span{padding:2mm 2.5mm}.site-doc-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;margin-bottom:5mm}.site-doc-summary>div{border:1px solid #9db5cb;text-align:center;padding:3mm}.site-doc-summary b{display:block;font-size:8.5pt;color:#64748b}.site-doc-summary strong{display:block;font-size:16pt;color:#163f66;margin-top:1mm}.site-ledger-print h2{font-size:12pt;color:#163f66;margin:5mm 0 2mm;padding-bottom:1.5mm;border-bottom:1px solid #9db5cb}.site-ledger-print table{width:100%;border-collapse:collapse;table-layout:fixed;margin:0 0 4mm;font-size:8.5pt}.site-ledger-print thead{display:table-header-group}.site-ledger-print tr{break-inside:avoid;page-break-inside:avoid}.site-ledger-print th,.site-ledger-print td{border:1px solid #9aaaba;padding:2mm 1.5mm;line-height:1.3;word-break:break-word;text-align:center}.site-ledger-print th{background:#edf4fa;color:#163f66;font-weight:800}.site-ledger-print td:first-child{text-align:left}.site-ledger-print.site-ledger-landscape{font-size:9pt}.site-ledger-print.site-ledger-landscape table{font-size:8pt}.site-ledger-print.site-ledger-landscape .site-unit-table th,.site-ledger-print.site-ledger-landscape .site-unit-table td{padding:1.4mm 1mm}.site-ledger-print.site-ledger-landscape h2{margin-top:3mm}.site-ledger-print.site-ledger-landscape .site-doc-summary{margin-bottom:3mm}
@media print{.site-ledger-print{box-shadow:none!important;page-break-after:auto!important;break-after:auto!important}.site-ledger-print table{page-break-inside:auto;break-inside:auto}.site-ledger-print tr{page-break-inside:avoid;break-inside:avoid}}

/* STEP110-21: 현장대장 미리보기 페이지 겹침 방지 */
/* STEP110-23 현장대장 미리보기 컨테이너 고정높이 해제
   다중 A4 페이지 래퍼가 document-print-page 안에 들어가므로 부모도 자동 높이로 전환한다. */
.document-print-page:has(.site-ledger-print-wrapper){
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
.document-print-page.site-ledger-print-wrapper{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:10mm!important;
  width:max-content!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:visible!important;
  transform:none!important;
}
.document-print-page.site-ledger-print-wrapper>.site-ledger-sheet{
  flex:0 0 auto!important;
  margin:0!important;
  overflow:hidden!important;
  position:relative!important;
  page-break-after:always!important;
  break-after:page!important;
}
.document-print-page.site-ledger-print-wrapper>.site-ledger-sheet:last-child{
  page-break-after:auto!important;
  break-after:auto!important;
}

/* STEP110-24 현장대장 미리보기 가로 스크롤 제거 / 자동 화면맞춤 */
.document-print-modal .document-print-stage:has(.site-ledger-print-wrapper){
  overflow-x:hidden!important;
  overflow-y:auto!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.document-print-modal .document-print-page:has(.site-ledger-print-wrapper){
  max-width:100%!important;
}
.document-print-modal .site-ledger-print-wrapper{
  overflow:visible!important;
}

/* STEP110-26 현장대장 미리보기: 화면 전체폭 + A4 전체 자동맞춤 */
.document-print-modal .document-print-modal-box:has(.site-ledger-print-wrapper){
  width:calc(100vw - 16px)!important;
  max-width:none!important;
  box-sizing:border-box!important;
  margin:0 auto!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
.document-print-modal .document-print-stage:has(.site-ledger-print-wrapper){
  width:100%!important;
  max-width:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  box-sizing:border-box!important;
  padding-left:0!important;
  padding-right:0!important;
}
.document-print-modal .document-print-page:has(.site-ledger-print-wrapper){
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:visible!important;
}

/* STEP110-31: 현장대장 기본정보 그리드 깨짐 복구 */
.ledger-detail-grid>.card:first-child{
  display:grid !important;
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  gap:8px !important;
  align-items:stretch !important;
  overflow:visible !important;
}
.ledger-detail-grid>.card:first-child>.card-title{
  grid-column:1/-1 !important;
  min-width:0 !important;
  width:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}
.ledger-detail-grid>.card:first-child>.card-title>span{
  min-width:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:17px !important;
}
.ledger-detail-grid>.card:first-child>.summary-row{
  grid-column:auto !important;
  grid-row:auto !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:3px !important;
  padding:9px 10px !important;
  border:1px solid #e2eaf2 !important;
  border-radius:7px !important;
  background:#fbfdff !important;
}
.ledger-detail-grid>.card:first-child>.summary-row span{
  font-size:13px !important;
  white-space:nowrap !important;
}
.ledger-detail-grid>.card:first-child>.summary-row b{
  width:100% !important;
  margin:0 !important;
  font-size:15px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  text-align:left !important;
}
.ledger-detail-grid>.ledger-products{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  margin:0 0 8px !important;
}
.ledger-products>.card{min-width:0 !important;}
@media(max-width:1100px){
  .ledger-detail-grid>.card:first-child{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .ledger-detail-grid>.card:first-child>.card-title{grid-column:1/-1 !important;}
  .ledger-detail-grid>.ledger-products{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:700px){
  .ledger-detail-grid>.card:first-child{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .ledger-detail-grid>.ledger-products{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:480px){
  .ledger-detail-grid>.card:first-child{grid-template-columns:1fr !important;}
  .ledger-detail-grid>.ledger-products{grid-template-columns:1fr !important;}
}

/* =========================================================
   STEP112 통합업무 UI
   ========================================================= */
.office-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}.office-dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-top-btn{font-weight:800}.office-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:14px;margin-top:14px}.office-calendar{height:100%}.office-calendar .toolbar{align-items:center}.office-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:14px}.office-kpi{background:#fff;border:1px solid #dbe4ee;border-radius:12px;padding:15px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.office-kpi span{display:block;color:#64748b;font-size:13px}.office-kpi strong{display:block;font-size:28px;margin-top:5px}.office-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.office-activity>div{display:grid;grid-template-columns:75px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid #edf1f5}.office-activity small{grid-column:2;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.office-mini-row,.office-notice-row,.admin-user-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f5}.office-mini-row b{min-width:70px}.office-chat{text-align:center;padding:40px 20px}.office-chat-icon{font-size:52px}.admin-menu-buttons{display:flex;gap:8px;flex-wrap:wrap;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.admin-user-row span{color:#64748b}.admin-user-row select{margin-left:auto}.office-as-dashboard .table-wrap{max-height:420px;overflow:auto}@media(max-width:1050px){.office-dashboard-grid,.office-two-col{grid-template-columns:1fr}.office-kpi-row{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:650px){.office-kpi-row{grid-template-columns:repeat(2,minmax(110px,1fr))}.office-dashboard-head{align-items:flex-start}.office-dashboard-actions{width:100%}.office-dashboard-actions .btn{flex:1}.admin-menu-buttons .btn{flex:1 1 45%}.admin-user-row{flex-wrap:wrap}.admin-user-row select{margin-left:0}.office-activity>div{grid-template-columns:1fr}.office-activity small{grid-column:1}}

/* ===== SOURCE: index.html inline qty53 ===== */
.qty53{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:12px}.qty53 span{padding:3px 8px;border-radius:999px;background:#fff;border:1px solid #e2e8f0}.qty53 b{font-size:13px}

/* ===== SOURCE: css/office.css ===== */
.cal-day-click{font:inherit;text-align:left;cursor:pointer;width:100%;border:0;background:transparent;padding:6px;min-height:88px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
    .cal-day-click:hover{background:#f4f8fb}.cal-day.holiday b,.cal-day.holiday em{color:#c94b5b}.calendar-v3-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.calendar-v3-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.calendar-v3-nav select{height:36px;border:1px solid #b9c9d8;border-radius:7px;padding:0 8px;background:#fff}.holiday-badge{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#fde8eb;color:#b42335;font-size:12px}.pagination-v3,.common-list-pager{display:flex;justify-content:center;gap:5px;padding:14px 0;flex-wrap:wrap}.common-list-pager button:disabled{opacity:.45;cursor:not-allowed}.schedule-view-select{height:32px;margin-left:6px;border:1px solid #b9c9d8;border-radius:6px;padding:0 8px;background:#fff;font-size:14px}.cal-head .sun-head,.cal-day.sunday b,.cal-day.holiday b,.cal-day.holiday em{color:#c94b5b!important}.cal-head .sat-head,.cal-day.saturday b{color:#2563eb!important}.day-event-modal{display:flex;flex-direction:column;gap:8px}.day-event-date{font-weight:900;font-size:18px;color:#163f66;margin-bottom:5px}.day-event-row{display:flex;justify-content:space-between;gap:10px;border:1px solid #dbe5ef;border-radius:9px;padding:10px;background:var(--dr-row-alt)}.day-event-row strong,.day-event-row small{display:block}.day-event-row strong{margin-top:3px}.day-event-row small{color:#64748b;margin-top:4px}.day-event-actions{display:flex;gap:5px;align-items:center;flex-shrink:0}.site-selector-v3{display:flex;align-items:center;gap:8px;padding:9px 10px;margin:10px 0;border:1px solid #dbe5ef;border-radius:9px;background:var(--dr-row-alt)}.site-selector-v3 label{font-weight:800;color:#163f66;white-space:nowrap}.site-selector-v3 input{min-width:220px;flex:1}.site-selector-v3 select{min-width:260px;max-width:100%;height:36px}.stage-dashboard{gap:12px!important}.stage-dash-row{min-width:78px}.stage-label b{font-size:15px!important}.stage-vchart strong{font-size:16px!important}.stage-vchart small{font-size:13px!important}.vchart-large{min-height:240px!important;gap:12px!important}.vchart-large .vcol b{font-size:16px!important}.vchart-large .vcol span{font-size:14px!important}
    .table .action-preview{background:#3979a7!important;border-color:#3979a7!important;color:#fff!important}.table .action-detail,.table .action-edit{background:#e4eef8!important;border-color:#9db5cb!important;color:#163f66!important}.table .action-delete{background:#c94b5b!important;border-color:#c94b5b!important;color:#fff!important}
    @media(max-width:700px){.site-selector-v3{align-items:stretch;flex-direction:column}.site-selector-v3 input,.site-selector-v3 select{min-width:0;width:100%}.calendar-v3-toolbar,.calendar-v3-nav{align-items:stretch}.calendar-v3-nav .btn,.calendar-v3-nav select{flex:1}.day-event-row{flex-direction:column}.day-event-actions{justify-content:flex-end}}
  

    .calendar-v4-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.calendar-v4-titlebar h3{margin:0;font-size:19px}.calendar-v4-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap}.calendar-v4-actions select{height:36px;border:1px solid #b9c9d8;border-radius:7px;padding:0 8px;background:#fff}.schedule-list-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.schedule-list-titlebar h3{margin:0}.schedule-view-select{margin-left:0;flex:0 0 auto}.cal-grid-v4{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #d5e0ea;border-left:1px solid #d5e0ea}.cal-grid-v4 .cal-day{border:0;border-right:1px solid #d5e0ea;border-bottom:1px solid #d5e0ea;border-radius:0;min-height:110px;background:#fff}.cal-grid-v4 .cal-day.other-month{background:#f3f4f6}.cal-grid-v4 .cal-day.other-month b{color:#9aa3ad!important}.cal-grid-v4 .cal-day.other-month .cal-event,.cal-grid-v4 .cal-day.other-month em{color:#9aa3ad!important}.cal-grid-v4 .cal-day.sunday b{color:#d6455d!important}.cal-grid-v4 .cal-day.saturday b{color:#2563eb!important}.cal-grid-v4 .cal-day.other-month.sunday b,.cal-grid-v4 .cal-day.other-month.saturday b{color:#9aa3ad!important}.cal-grid-v4 .cal-day.holiday b,.cal-grid-v4 .cal-day.holiday em{color:#d6455d!important}.cal-grid-v4 .cal-day.today{outline:2px solid #3979a7;outline-offset:-2px}.cal-head{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #d5e0ea}.cal-head>span{border-right:1px solid #d5e0ea;border-bottom:1px solid #d5e0ea;padding:9px 6px;text-align:center}.schedule-list-panel{margin-top:14px}.schedule-list-titlebar small{display:block;margin-top:4px;color:#64748b}.schedule-list-titlebar>div:first-child{min-width:0}.schedule-list-titlebar .schedule-view-select{height:36px;min-width:150px}.office-calendar{overflow:hidden}.customer-ledger-sheet .site-doc-title{letter-spacing:2px!important;font-size:18pt!important}.customer-ledger-sheet table{width:100%!important;table-layout:fixed!important;font-size:9pt!important}.customer-ledger-sheet th,.customer-ledger-sheet td{white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;padding:1.8mm 1.2mm!important}.customer-ledger-sheet th:nth-child(1),.customer-ledger-sheet td:nth-child(1){width:8%}.customer-ledger-sheet th:nth-child(2),.customer-ledger-sheet td:nth-child(2){width:10%}.customer-ledger-sheet th:nth-child(3),.customer-ledger-sheet td:nth-child(3){width:14%}.customer-ledger-sheet th:nth-child(4),.customer-ledger-sheet td:nth-child(4){width:8%}.customer-ledger-sheet th:nth-child(5),.customer-ledger-sheet td:nth-child(5){width:12%}.customer-ledger-sheet th:nth-child(6),.customer-ledger-sheet td:nth-child(6){width:8%}.customer-ledger-sheet th:nth-child(7),.customer-ledger-sheet td:nth-child(7){width:8%}.customer-ledger-sheet th:nth-child(8),.customer-ledger-sheet td:nth-child(8){width:10%}.customer-ledger-sheet th:nth-child(9),.customer-ledger-sheet td:nth-child(9){width:8%}.customer-ledger-sheet th:nth-child(10),.customer-ledger-sheet td:nth-child(10){width:14%}
    .customer-ledger-sheet{padding:12mm 10mm!important;box-sizing:border-box!important;color:#182b3d!important;background:#fff!important}.customer-ledger-sheet .site-doc-head{text-align:center!important;border-bottom:1.5px solid #244b70!important;padding-bottom:4mm!important;margin-bottom:5mm!important}.customer-ledger-sheet .site-doc-title{letter-spacing:2px!important;font-size:20pt!important;font-weight:900!important;color:#163f66!important}.customer-ledger-sheet .site-doc-sub{font-size:8pt!important;letter-spacing:3px!important;color:#64748b!important;margin-top:1mm!important}.customer-ledger-sheet .site-doc-minihead{display:flex!important;justify-content:space-between!important;margin-bottom:3mm!important;font-size:9pt!important;color:#34495e!important}.customer-ledger-sheet table{width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;margin:0!important;font-size:9pt!important}.customer-ledger-sheet thead{display:table-header-group!important}.customer-ledger-sheet th,.customer-ledger-sheet td{border:1px solid #9aaaba!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;padding:1.6mm 1.2mm!important;line-height:1.3!important;text-align:center!important}.customer-ledger-sheet th{background:#edf4fa!important;color:#163f66!important;font-weight:800!important}.customer-ledger-sheet td:first-child{text-align:left!important}
    .as-ledger-sheet{padding:12mm 10mm!important;box-sizing:border-box!important;color:#182b3d!important;background:#fff!important}.as-ledger-sheet .site-doc-head{text-align:center!important;border-bottom:1.5px solid #244b70!important;padding-bottom:4mm!important;margin-bottom:4mm!important}.as-ledger-sheet .site-doc-title{letter-spacing:2px!important;font-size:20pt!important;font-weight:900!important;color:#163f66!important}.as-ledger-sheet .site-doc-sub{font-size:8pt!important;letter-spacing:3px!important;color:#64748b!important;margin-top:1mm!important}.as-ledger-sheet .site-doc-minihead{display:flex!important;justify-content:space-between!important;margin-bottom:3mm!important;font-size:9pt!important;color:#34495e!important}.as-ledger-sheet table{width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:8.6pt!important}.as-ledger-sheet thead{display:table-header-group!important}.as-ledger-sheet th,.as-ledger-sheet td{border:1px solid #9aaaba!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;padding:1.5mm 1.1mm!important;line-height:1.25!important;text-align:center!important}.as-ledger-sheet th{background:#edf4fa!important;color:#163f66!important;font-weight:800!important}.as-ledger-sheet th:nth-child(1){width:8%!important}.as-ledger-sheet th:nth-child(2){width:8%!important}.as-ledger-sheet th:nth-child(3){width:13%!important}.as-ledger-sheet th:nth-child(4){width:9%!important}.as-ledger-sheet th:nth-child(5){width:10%!important}.as-ledger-sheet th:nth-child(6){width:9%!important}.as-ledger-sheet th:nth-child(7){width:10%!important}.as-ledger-sheet th:nth-child(8){width:8%!important}.as-ledger-sheet th:nth-child(9){width:17%!important}.as-ledger-sheet th:nth-child(10){width:8%!important}
    @media(max-width:900px){.calendar-v4-titlebar,.schedule-list-titlebar{flex-wrap:wrap}.calendar-v4-actions{width:100%;overflow-x:auto;padding-bottom:2px}.calendar-v4-actions .btn,.calendar-v4-actions select{flex:0 0 auto}.schedule-list-titlebar .schedule-view-select{width:auto}.cal-grid-v4 .cal-day{min-height:88px}}
  
.cal-grid-v4 .cal-day.other-month b,.cal-grid-v4 .cal-day.other-month em{color:#9aa3ad!important}
.table .btn,.drawing-table8 .btn,.work-table8 .btn,.day-event-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:30px;height:30px;padding:0 10px;margin:2px;border-radius:6px;font-size:12px;line-height:1.2;white-space:nowrap;gap:4px}
.common-list-pager{align-items:center}.list-pagination-row>td{border:0!important;background:transparent!important}.list-page-count{font-size:12px;color:#64748b;margin-left:8px}
.calendar-v4-titlebar{flex-wrap:wrap}.calendar-v4-actions{max-width:100%;overflow-x:auto}.schedule-list-titlebar{justify-content:flex-start}
input[data-date-picker]{cursor:pointer}.dr-date-picker{z-index:2147483640}.dr-date-time{padding:8px;display:flex;gap:8px;align-items:center}

.office-calendar .cal-head,.office-calendar .cal-grid{min-width:0!important;width:100%!important}.office-calendar .cal-day{min-width:0!important;overflow:hidden}.cal-event{max-width:100%;overflow:hidden;text-overflow:ellipsis}.office-dashboard-grid>div{min-width:0}

/* ===== SOURCE: css/step112-8.css ===== */
/* Only the three STEP112-8 scopes; site screens keep their existing styles. */
.schedule-list-panel .schedule-list-titlebar{display:flex!important;align-items:center!important;justify-content:flex-start!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:12px;overflow-x:auto;min-width:0}
.schedule-list-panel .schedule-list-titlebar h3{flex:0 0 auto;white-space:nowrap;margin:0;word-break:keep-all}
.schedule-list-panel .schedule-view-buttons{display:flex;flex:0 0 auto;align-items:center;gap:6px;white-space:nowrap}
.schedule-list-panel .schedule-view-buttons .btn{width:auto;min-width:78px;flex:0 0 auto;height:34px;padding:0 10px}
.schedule-list-help{display:block;margin:9px 0 14px;color:#64748b;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.office-calendar .calendar-v4-actions select{width:auto!important;min-width:70px;max-width:140px;flex:0 0 auto}
.office-calendar .calendar-v4-titlebar h3{flex:0 0 auto;white-space:nowrap}
.erp-management-cell{vertical-align:middle!important}
.erp-list-actions{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;white-space:nowrap}
:is(#content,#modal) table .erp-list-actions .erp-list-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;width:68px!important;min-width:68px!important;max-width:68px!important;height:32px!important;min-height:32px!important;padding:0!important;margin:0!important;font:600 12px/1.2 "Malgun Gothic",Arial,sans-serif!important;border:1px solid #9db5cb!important;border-radius:6px!important;letter-spacing:0!important;text-decoration:none!important;white-space:nowrap!important;vertical-align:middle!important;background:#e4eef8!important;color:#163f66!important}
:is(#content,#modal) table .erp-list-actions .action-preview{background:#3979a7!important;border-color:#3979a7!important;color:#fff!important}
:is(#content,#modal) table .erp-list-actions .action-delete{background:#c94b5b!important;border-color:#c94b5b!important;color:#fff!important}
.erp-list-extra{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.material-detail-modal{width:min(1100px,96vw)!important;max-width:1100px!important}
.material-detail .material-detail-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.material-detail-info>div{min-width:0}.material-detail-info b{display:block;color:#64748b;font-size:12px;margin-bottom:5px}.material-detail-info span{display:block;overflow-wrap:anywhere;white-space:pre-wrap}
.material-detail-summary{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin:14px 0}.material-detail-summary>div{display:flex;gap:10px;padding:10px;background:#f1f5f9;border-radius:6px}.material-detail-summary>div:last-child{color:#163f66}.material-detail-memo>div{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}
@media(max-width:700px){.material-detail .table{min-width:700px}}

/* ===== SOURCE: css/step112-9.css ===== */
/* =========================================================
 STEP112-9 화면 정리
 - 기존 데이터/업무 로직/현장관리/A4 인쇄 본문은 변경하지 않는다.
 - 입력형 화면은 넓은 가로형 섹션 폼으로 통일한다.
 - 문서 미리보기의 스크롤은 stage 한 곳에서만 담당한다.
========================================================= */

/* 공통 섹션 제목 */
.erp-section-title,
.item-builder-title{
  margin:0 0 12px;
  padding:9px 14px;
  border-radius:7px 7px 0 0;
  background:linear-gradient(90deg,#2f80bd,#8ebfe2);
  color:#fff;
  font-size:16px;
  font-weight:800;
  line-height:1.25;
}
.item-subtitle{
  margin:2px 0 9px;
  color:#163f66;
  font-size:13px;
  font-weight:800;
}
.erp-form-section{min-width:0}
.item-code-builder{
  margin-top:12px;
  padding:0 12px 14px;
  border:1px solid #c9d9e8;
  border-radius:9px;
  background:#f7fbff;
}
.item-code-builder>.item-builder-title{margin-left:-12px;margin-right:-12px}
.item-builder-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px 12px!important;
  align-items:end;
}
.item-builder-grid .item-recommended{grid-column:1/-1}
.item-code-direct{margin-top:10px}
.item-master-fields{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px 12px!important;
  align-items:start;
}
.item-master-fields .span-2{grid-column:span 2}
.item-code-builder .erp-section-title{
  margin:16px -12px 12px;
}
.erp-list-section>.erp-section-title{margin:-1px -1px 10px}
.item-code-builder input,
.item-code-builder select,
.item-code-builder textarea{
  width:100%;
  box-sizing:border-box;
}
.item-code-builder label{display:block;margin-bottom:5px;font-weight:700;color:#24384b}
.item-code-builder textarea{min-height:76px}

/* 구매·자재 상세보기: 기본정보 → 품목 → 금액 → 비고 */
.material-detail{display:flex;flex-direction:column;gap:12px}
.material-detail-section{
  margin:0!important;
  padding:0 12px 12px!important;
  overflow:visible!important;
}
.material-detail-section>.erp-section-title{margin:0 -12px 12px}
.material-detail .material-detail-info{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px 18px!important;
}
.material-detail-info>div{
  padding:8px 10px;
  border:1px solid #dbe6f0;
  border-radius:6px;
  background:#fff;
}
.material-detail-summary{margin:0!important}

/* 문서 미리보기: 바깥 modal/page/iframe은 스크롤을 만들지 않고 stage 하나만 사용 */
.document-print-modal{overflow:hidden!important}
.document-print-modal>.document-print-modal-box,
.document-print-modal .document-print-modal-box{
  height:calc(100vh - 20px)!important;
  max-height:calc(100vh - 20px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.document-print-modal .document-print-toolbar{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:2;
}
.document-print-modal .document-print-stage{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
}
.document-print-modal .document-print-stage>iframe{
  overflow:hidden!important;
}

/* 작은 화면에서는 입력 폼만 반응형. A4 인쇄 문서 규칙은 건드리지 않는다. */
@media(max-width:1100px){
  .item-builder-grid,.item-master-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .item-builder-grid,.item-master-fields{grid-template-columns:1fr!important}
  .item-master-fields .span-2{grid-column:auto}
  .material-detail .material-detail-info{grid-template-columns:1fr!important}
}

/* ===== SOURCE: css/step112-10.css ===== */
/* =========================================================
 STEP112-10 입력형 서류폼 공통 디자인
 - 업무 데이터/필드/테이블/이벤트 로직 변경 없음
 - A4 미리보기/인쇄 엔진 및 현장관리 변경 없음
========================================================= */
:root{
  --dr-form-blue:#3296d2;
  --dr-form-blue-dark:#217db8;
  --dr-form-line:#bfd9eb;
  --dr-form-bg:#f5fbff;
  --dr-form-head:#eaf5fc;
  --dr-form-text:#16324a;
}

/* 일반 업무 입력 패널: 파란 제목바 + 넓은 가로형 */
.main .panel:not(.document-print-page):not(.site-option-manager),
.main .card:not(.site-card):not(.site-ledger-sheet){
  border-color:var(--dr-form-line);
}
.main .panel>.panel-title,
.main .panel>.card-title,
.main .card>.card-title,
.main .form-section-title,
.main .section-title,
.main .erp-section-title{
  background:linear-gradient(90deg,var(--dr-form-blue-dark),var(--dr-form-blue));
  color:#fff;
  border-radius:7px 7px 0 0;
  padding:9px 14px;
  font-weight:800;
  line-height:1.25;
}

/* 입력영역은 가능한 경우 가로 배치 */
.main .form-grid,
.main .quote-form-grid,
.main .purchase-form-grid,
.main .order-form-grid,
.main .import-form-grid,
.main .receipt-form-grid,
.main .shipping-form-grid,
.main .production-form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 12px;
  align-items:end;
}
.main .form-grid>div,
.main .quote-form-grid>div,
.main .purchase-form-grid>div,
.main .order-form-grid>div,
.main .import-form-grid>div,
.main .receipt-form-grid>div,
.main .shipping-form-grid>div,
.main .production-form-grid>div{min-width:0}

.main label{color:var(--dr-form-text)}
.main input:not([type="checkbox"]):not([type="radio"]),
.main select,
.main textarea{
  border-color:#b9d2e5;
  border-radius:6px;
}
.main textarea{min-height:70px}

/* 업무별 품목 표: 열/행 구조는 그대로, 시각만 공통 */
.main .table-wrap{border-color:var(--dr-form-line)}
.main table.table thead th{
  background:linear-gradient(#edf7fd,#dceef9);
  color:#173b58;
  border-color:#bfd5e5;
  font-weight:800;
}
.main table.table tbody td{border-color:#cbddea}
.main table.table tbody tr:nth-child(even){background:#f8fcff}

/* 입력폼 안의 주요 구역을 명확하게 */
.main .quote-section,
.main .purchase-section,
.main .order-section,
.main .import-section,
.main .receipt-section,
.main .shipping-section,
.main .production-section,
.main .material-detail-section,
.main .erp-form-section{
  border:1px solid var(--dr-form-line);
  border-radius:8px;
  background:linear-gradient(#fbfdff,var(--dr-form-bg));
  overflow:hidden;
}

/* 하단 정보/금액/메모 영역이 여러 개면 가로 배치 */
.main .document-form-bottom,
.main .form-bottom-grid,
.main .quote-bottom-grid,
.main .purchase-bottom-grid,
.main .order-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr) minmax(260px,.8fr);
  gap:12px;
  align-items:stretch;
}

/* 버튼 규격 */
.main .toolbar .btn,
.main .form-actions .btn,
.main .table .btn{
  min-height:34px;
  border-radius:6px;
  font-weight:700;
}

/* 상세보기 공통 구역은 STEP112-9 구조를 유지하면서 색상만 일치 */
.material-detail .erp-section-title{
  background:linear-gradient(90deg,var(--dr-form-blue-dark),var(--dr-form-blue));
}
.material-detail-info{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* 품목관리: STEP112-9의 실제 필드/테이블 구조를 그대로 유지 */
.item-code-builder,
.erp-list-section{
  border-color:var(--dr-form-line)!important;
  background:linear-gradient(#fbfdff,var(--dr-form-bg))!important;
}
.item-builder-title,.erp-list-section>.erp-section-title{
  background:linear-gradient(90deg,var(--dr-form-blue-dark),var(--dr-form-blue))!important;
}
.item-builder-grid,.item-master-fields{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

/* 절대 건드리면 안 되는 영역: A4 미리보기/인쇄, 현장관리 */
.document-print-modal .document-print-stage,
.document-print-modal .document-print-page,
.document-print-stage .print-page,
.site-ledger-print-wrapper,
.site-ledger-sheet{
  /* 기존 STEP112-8/9 인쇄 규칙 우선 */
}

/* 화면 폭에 따른 폼 배치만 축소 */
@media(max-width:1250px){
  .main .form-grid,
  .main .quote-form-grid,
  .main .purchase-form-grid,
  .main .order-form-grid,
  .main .import-form-grid,
  .main .receipt-form-grid,
  .main .shipping-form-grid,
  .main .production-form-grid,
  .item-builder-grid,.item-master-fields{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:950px){
  .main .form-grid,
  .main .quote-form-grid,
  .main .purchase-form-grid,
  .main .order-form-grid,
  .main .import-form-grid,
  .main .receipt-form-grid,
  .main .shipping-form-grid,
  .main .production-form-grid,
  .item-builder-grid,.item-master-fields{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .main .document-form-bottom,.main .form-bottom-grid,.main .quote-bottom-grid,
  .main .purchase-bottom-grid,.main .order-bottom-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .main .form-grid,
  .main .quote-form-grid,
  .main .purchase-form-grid,
  .main .order-form-grid,
  .main .import-form-grid,
  .main .receipt-form-grid,
  .main .shipping-form-grid,
  .main .production-form-grid,
  .item-builder-grid,.item-master-fields,
  .main .document-form-bottom,.main .form-bottom-grid,.main .quote-bottom-grid,
  .main .purchase-bottom-grid,.main .order-bottom-grid{
    grid-template-columns:1fr!important;
  }
}

/* ===== SOURCE: css/step112-11.css ===== */
/* STEP112-11 품목관리 폼 구조 개편 */
.item-form-v2{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.item-v2-section{border:1px solid #bfd9eb;border-radius:9px;background:#f7fbff;overflow:hidden}
.item-v2-title{padding:10px 14px;background:linear-gradient(90deg,#217db8,#3296d2);color:#fff;font-size:16px;font-weight:800}
.item-v2-title span{font-size:13px;font-weight:600;opacity:.9}
.item-v2-grid{display:grid;gap:11px 13px;padding:14px;align-items:start}
.item-v2-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.item-v2-grid label{display:block;margin-bottom:5px;font-weight:700;color:#24384b}
.item-v2-grid input,.item-v2-grid select,.item-v2-grid textarea{width:100%;box-sizing:border-box}
.item-v2-grid textarea{min-height:78px}
.item-v2-span-2{grid-column:span 2}
.item-v2-subinput{margin-top:6px}
.item-v2-code-action{display:flex;justify-content:flex-end;padding:0 14px 14px}
.item-v2-photo-row{display:grid;grid-template-columns:minmax(340px,1.1fr) minmax(280px,.9fr);gap:16px;padding:14px}
.item-v2-photo-box{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(180px,.3fr);gap:12px;align-items:start}
.item-v2-photo-preview{min-height:90px;border:1px dashed #9ebfd6;border-radius:7px;background:#fff;display:flex;align-items:center;justify-content:center;padding:8px;color:#6b7f90;text-align:center}
.item-v2-photo-preview img{display:block;max-width:100%;max-height:130px;object-fit:contain}
.item-v2-photo-help{padding:12px;border-radius:7px;background:#edf7fd;color:#4c6578;line-height:1.55}
.item-v2-actions{justify-content:flex-end;margin-top:0}
.erp-list-section>.erp-section-title{background:linear-gradient(90deg,#217db8,#3296d2)!important;color:#fff}
@media(max-width:1100px){.item-v2-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.item-v2-photo-row{grid-template-columns:1fr}}
@media(max-width:650px){.item-v2-grid-4,.item-v2-photo-box{grid-template-columns:1fr}.item-v2-span-2{grid-column:auto}}

/* ===== SOURCE: css/step112-12.css ===== */
/* STEP112-12 품목사진 수정/삭제 연계 */
.item-edit-photo{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,260px) auto;gap:12px;align-items:center;padding:14px}
.item-edit-photo .btn.danger,.item-v2-photo-box .btn.danger{white-space:nowrap}
.item-v2-photo-box{grid-template-columns:minmax(220px,.65fr) minmax(180px,.25fr) auto!important}
@media(max-width:760px){.item-edit-photo,.item-v2-photo-box{grid-template-columns:1fr!important}}

/* ===== SOURCE: css/step112-13.css ===== */
/* STEP112-13 품목등록 모달 */
.item-create-modal{position:fixed;inset:0;z-index:100000;background:rgba(15,32,48,.48);align-items:center;justify-content:center;padding:22px}
.item-create-dialog{width:min(1420px,96vw);max-height:92vh;background:#fff;border-radius:12px;box-shadow:0 18px 55px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden}
.item-create-head{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #c9d9e8;background:#f5faff}
.item-create-head strong{font-size:20px;color:#163f66}
.item-create-head .btn{margin-left:auto}
.item-create-body{flex:1 1 auto;min-height:0;overflow:auto;padding:16px}
.item-create-body .item-form-v2{margin-top:0}
@media(max-width:700px){.item-create-modal{padding:8px}.item-create-dialog{width:100%;max-height:96vh}.item-create-body{padding:10px}}

/* ===== SOURCE: css/step112-14.css ===== */
/* STEP112-14 선택항목 관리 버튼 한 줄 고정 */
.option-manager td:last-child,
.option-manager .option-actions,
.option-manage td:last-child,
.master-option-manager td:last-child,
.selection-option-manager td:last-child,
[data-option-manager] td:last-child {
  white-space: nowrap !important;
  min-width: 260px;
}
.option-manager td:last-child .btn,
.option-manager .option-actions .btn,
.option-manage td:last-child .btn,
.master-option-manager td:last-child .btn,
.selection-option-manager td:last-child .btn,
[data-option-manager] td:last-child .btn {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 2px 2px !important;
  vertical-align: middle;
  white-space: nowrap !important;
}


/* STEP112-14-1 실제 선택항목 관리 테이블 기준 강제 한 줄 */
#modal table.option-manager,
#modal table.d96-master-table {
  table-layout: auto !important;
  width: 100% !important;
}
#modal table.option-manager td:last-child,
#modal table.d96-master-table td:last-child {
  display: table-cell !important;
}
#modal table.option-manager td:last-child > button,
#modal table.d96-master-table td:last-child > button {
  display: inline-block !important;
  float: none !important;
  width: auto !important;
  min-width: 34px !important;
  margin: 2px 2px !important;
  white-space: nowrap !important;
}
/* STEP112-14-2: HTML 자체를 한 줄 flex 컨테이너로 고정 */
#modal .option-action-line{
 display:flex !important;
 flex-direction:row !important;
 flex-wrap:nowrap !important;
 align-items:center !important;
 gap:6px !important;
 width:max-content !important;
 min-width:max-content !important;
 white-space:nowrap !important;
}
#modal .option-action-line > .btn{
 flex:0 0 auto !important;
 display:inline-flex !important;
 width:auto !important;
 margin:0 !important;
 white-space:nowrap !important;
}
#modal .modal-box:has(.option-manager){
 width:min(1100px,96vw) !important;
 max-width:1100px !important;
}
#modal .option-manager th:last-child,
#modal .option-manager td:last-child{
 min-width:360px !important;
 width:360px !important;
}

/* ===== SOURCE: css/step112-14-3.css ===== */
/* STEP112-14-3 선택항목 관리 실제 충돌 수정 */
#modal .erp-list-actions,
#modal .option-action-line,
#modal td:last-child .erp-list-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  align-items: center !important;
  gap: 6px !important;
  width: max-content !important;
  min-width: max-content !important;
}
#modal .erp-list-actions > *,
#modal .option-action-line > * {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}
#modal table.option-manager th:last-child,
#modal table.option-manager td:last-child,
#modal table.d96-master-table th:last-child,
#modal table.d96-master-table td:last-child {
  min-width: 390px !important;
  width: 390px !important;
  white-space: nowrap !important;
}
#modal .table-wrap { overflow-x:auto !important; }

/* ===== SOURCE: css/step112-15.css ===== */
/* STEP112-15-2 거래처 등록 실제 템플릿 전용 */
#modal .customer-direct-grid{align-items:start!important}
#modal .customer-direct-grid .customer-direct-section-title{
 grid-column:1/-1!important;
 display:block!important;
 box-sizing:border-box!important;
 width:100%!important;
 margin:10px 0 2px!important;
 padding:11px 14px!important;
 background:var(--dr-section-title-bg)!important;
 color:#fff!important;
 border:1px solid #2382b8!important;
 border-radius:7px 7px 0 0!important;
 font-size:16px!important;
 font-weight:700!important;
 line-height:1.2!important;
}
#modal .customer-direct-grid .customer-direct-section-title:first-child{margin-top:0!important}

/* ===== SOURCE: css/step112-16.css ===== */
/* STEP112-16-1 견적 등록/수정 실제 섹션 구조 */
#modal .quote-section-title{
 display:block!important;
 box-sizing:border-box!important;
 grid-column:1 / -1!important;
 width:100%!important;
 min-width:100%!important;
 clear:both!important;
 margin:14px 0 12px!important;
 padding:11px 14px!important;
 background:var(--dr-section-title-bg)!important;
 color:#fff!important;
 border:1px solid #2382b8!important;
 border-radius:7px 7px 0 0!important;
 font-size:16px!important;
 font-weight:700!important;
 line-height:1.2!important;
}
#modal .quote-section-title:first-child{margin-top:0!important}

/* ===== SOURCE: css/step112-17.css ===== */
/* STEP112-17 수주 등록·수정 전용 */
#modal .order11217-section{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
#modal .order11217-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  border:0!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
#modal .order11217-section .form-grid{
  align-items:start!important;
}
#modal .order11217-section input:not([type=checkbox]):not([type=radio]),
#modal .order11217-section select{
  box-sizing:border-box!important;
  max-width:100%!important;
}
#modal .order11217-section .table-wrap{
  margin-bottom:10px!important;
}

/* ===== SOURCE: css/step112-18.css ===== */
/* STEP112-18 구매 등록·수정 전용 */
#modal:has(.purchase11218-form) .modal-box,
#modal:has(.purchase11218-form) .modal{
  width:min(1180px,96vw)!important;
  max-width:1180px!important;
}
#modal .purchase11218-form{
  width:100%!important;
}
#modal .purchase11218-section{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
#modal .purchase11218-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
#modal .purchase11218-titlebar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:0 10px 0 0!important;
  background:var(--dr-section-title-bg)!important;
}
#modal .purchase11218-titlebar .purchase11218-title-inline{
  width:auto!important;
  margin:0!important;
  flex:1 1 auto!important;
}
#modal .purchase11218-item-actions{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
#modal .purchase11218-item-actions .btn{
  margin:0!important;
  white-space:nowrap!important;
}
#modal .purchase11218-section .form-grid{
  align-items:start!important;
}
#modal .purchase11218-section .table-wrap{
  margin-top:8px!important;
}
#modal .purchase11218-section #pur_memo{
  width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:760px){
 #modal .purchase11218-titlebar{
  align-items:stretch!important;
  flex-direction:column!important;
  padding:0 10px 10px!important;
 }
 #modal .purchase11218-titlebar .purchase11218-title-inline{
  width:calc(100% + 20px)!important;
  margin:0 -10px!important;
 }
 #modal .purchase11218-item-actions{flex-wrap:wrap!important}
}

/* ===== SOURCE: css/step112-18-1.css ===== */
/* STEP112-18-1 구매 리스트 상단 전용 */
.purchase112181-top{
  padding:14px!important;
}
.purchase112181-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin-bottom:10px!important;
}
.purchase112181-notice{
  margin-bottom:12px!important;
  padding:10px 14px!important;
  border:1px solid #f0dfc8!important;
  border-radius:8px!important;
  background:#fff8ef!important;
  color:#23384d!important;
  font-size:14px!important;
  line-height:1.35!important;
}
.purchase112181-searchbar{
  display:grid!important;
  grid-template-columns:
    minmax(130px,1fr)
    minmax(130px,1fr)
    minmax(150px,1fr)
    minmax(130px,1fr)
    minmax(280px,1.55fr)
    minmax(130px,.75fr)
    auto!important;
  gap:10px 12px!important;
  align-items:end!important;
}
.purchase112181-field{
  min-width:0!important;
}
.purchase112181-field label{
  display:block!important;
  margin-bottom:5px!important;
  font-weight:700!important;
  color:#24384d!important;
  white-space:nowrap!important;
}
.purchase112181-field input,
.purchase112181-field select{
  width:100%!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
}
.purchase112181-date-range{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
}
.purchase112181-date-range span{
  text-align:center!important;
  font-weight:700!important;
}
.purchase112181-buttons{
  display:flex!important;
  align-items:end!important;
  gap:8px!important;
  white-space:nowrap!important;
}
.purchase112181-buttons .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  white-space:nowrap!important;
}
@media(max-width:1200px){
  .purchase112181-searchbar{
    grid-template-columns:repeat(4,minmax(150px,1fr))!important;
  }
  .purchase112181-date{grid-column:span 2!important}
  .purchase112181-buttons{grid-column:span 2!important}
}
@media(max-width:760px){
  .purchase112181-searchbar{
    grid-template-columns:1fr 1fr!important;
  }
  .purchase112181-date,
  .purchase112181-buttons{grid-column:1/-1!important}
}
@media(max-width:520px){
  .purchase112181-searchbar{grid-template-columns:1fr!important}
  .purchase112181-date,
  .purchase112181-buttons{grid-column:auto!important}
  .purchase112181-buttons{flex-wrap:wrap!important}
}

/* ===== SOURCE: css/step112-18-2.css ===== */
/* STEP112-18-2 구매 리스트: 등록창과 동일한 섹션/색상 구조 */
.purchase112182-listtop{
  width:100%;
}
.purchase112182-section{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
.purchase112182-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.purchase112182-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
}
.purchase112182-notice{
  margin-top:10px!important;
  padding:9px 12px!important;
  border:1px solid var(--dr-component-border)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--dr-field-label)!important;
  font-size:13px!important;
  line-height:1.35!important;
}
.purchase112182-searchgrid{
  display:grid!important;
  grid-template-columns:
    minmax(0,.95fr)
    minmax(0,1fr)
    minmax(0,1.1fr)
    minmax(0,2fr)
    minmax(0,.85fr)
    max-content!important;
  gap:10px 12px!important;
  align-items:end!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.purchase112182-field,
.purchase112182-date,
.purchase112182-buttons{
  min-width:0!important;
  max-width:100%!important;
}
.purchase112182-field label{
  display:block!important;
  margin:0 0 5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
  white-space:nowrap!important;
}
.purchase112182-field input,
.purchase112182-field select{
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.purchase112182-date-range{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
}
.purchase112182-date-range input{
  min-width:0!important;
}
.purchase112182-date-range span{
  text-align:center!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
}
.purchase112182-buttons{
  display:flex!important;
  gap:8px!important;
  align-items:end!important;
  justify-self:end!important;
  white-space:nowrap!important;
}
.purchase112182-buttons .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  white-space:nowrap!important;
}
@media(max-width:1380px){
  .purchase112182-searchgrid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .purchase112182-date{
    grid-column:span 2!important;
  }
  .purchase112182-buttons{
    justify-self:start!important;
  }
}
.purchase112182-list-section{
  padding-bottom:8px!important;
}
.purchase112182-list-section .table-wrap{
  margin:0!important;
  border:1px solid #c7d9e8!important;
  border-radius:6px!important;
  overflow:auto!important;
  background:#fff!important;
}
.purchase112182-list-section .table{
  width:100%!important;
  margin:0!important;
  border-collapse:collapse!important;
  background:#fff!important;
}
.purchase112182-list-section .table thead th{
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  font-weight:700!important;
  border-bottom:1px solid var(--dr-section-border)!important;
}
.purchase112182-list-section .table tbody td{
  background:#fff!important;
  border-bottom:1px solid #e3edf4!important;
}
.purchase112182-list-section .table tbody tr:nth-child(even) td{
  background:var(--dr-row-alt)!important;
}
.purchase112182-list-section .table tbody tr:hover td{
  background:var(--dr-row-hover)!important;
}
@media(max-width:1200px){
  .purchase112182-searchgrid{
    grid-template-columns:repeat(4,minmax(150px,1fr))!important;
  }
  .purchase112182-date{grid-column:span 2!important}
  .purchase112182-buttons{grid-column:span 2!important}
}
@media(max-width:760px){
  .purchase112182-searchgrid{
    grid-template-columns:1fr 1fr!important;
  }
  .purchase112182-date,
  .purchase112182-buttons{grid-column:1/-1!important}
}
@media(max-width:520px){
  .purchase112182-searchgrid{grid-template-columns:1fr!important}
  .purchase112182-date,
  .purchase112182-buttons{grid-column:auto!important}
  .purchase112182-buttons{flex-wrap:wrap!important}
}

/* ===== SOURCE: css/step112-19.css ===== */
/* STEP112-19 발주관리 - 구매관리와 동일한 UI 체계 */
#modal:has(.po11219-form) .modal-box,
#modal:has(.po11219-form) .modal{
  width:min(1180px,96vw)!important;
  max-width:1180px!important;
}
#modal .po11219-form{width:100%!important}
#modal .po11219-section,
.po11219-list-section{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
#modal .po11219-title,
.po11219-list-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
#modal .po11219-titlebar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:0 10px 0 0!important;
  background:var(--dr-section-title-bg)!important;
}
#modal .po11219-titlebar .po11219-title-inline{
  width:auto!important;
  margin:0!important;
  flex:1 1 auto!important;
}
#modal .po11219-item-actions,
.po11219-actions,
.po11219-buttons{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
#modal .po11219-item-actions{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
.po11219-notice{
  margin-top:10px!important;
  padding:9px 12px!important;
  border:1px solid var(--dr-component-border)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--dr-field-label)!important;
  font-size:13px!important;
  line-height:1.35!important;
}
.po11219-searchgrid{
  display:grid!important;
  grid-template-columns:
    minmax(140px,1fr)
    minmax(150px,1fr)
    minmax(160px,1fr)
    minmax(300px,1.6fr)
    minmax(130px,.8fr)
    auto!important;
  gap:10px 12px!important;
  align-items:end!important;
}
.po11219-field{min-width:0!important}
.po11219-field label{
  display:block!important;
  margin-bottom:5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
  white-space:nowrap!important;
}
.po11219-field input,
.po11219-field select{
  width:100%!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.po11219-date-range{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
}
.po11219-date-range span{
  text-align:center!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
}
.po11219-buttons{
  align-items:end!important;
  white-space:nowrap!important;
}
.po11219-buttons .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
}
.po11219-table-section .table-wrap{
  margin:0!important;
  border:1px solid #c7d9e8!important;
  border-radius:6px!important;
  overflow:auto!important;
  background:#fff!important;
}
.po11219-table-section .table{
  width:100%!important;
  margin:0!important;
  border-collapse:collapse!important;
  background:#fff!important;
}
.po11219-table-section .table thead th{
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  font-weight:700!important;
  border-bottom:1px solid var(--dr-section-border)!important;
}
.po11219-table-section .table tbody td{
  background:#fff!important;
  border-bottom:1px solid #e3edf4!important;
}
.po11219-table-section .table tbody tr:nth-child(even) td{
  background:var(--dr-row-alt)!important;
}
.po11219-table-section .table tbody tr:hover td{
  background:var(--dr-row-hover)!important;
}
@media(max-width:1100px){
  .po11219-searchgrid{grid-template-columns:repeat(3,minmax(150px,1fr))!important}
  .po11219-date{grid-column:span 2!important}
}
@media(max-width:700px){
  .po11219-searchgrid{grid-template-columns:1fr 1fr!important}
  .po11219-date,.po11219-buttons{grid-column:1/-1!important}
}
@media(max-width:520px){
  .po11219-searchgrid{grid-template-columns:1fr!important}
  .po11219-date,.po11219-buttons{grid-column:auto!important}
}


/* STEP112-19-1: 발주관리 검색조건 제목 아래 불필요 여백 수정 */
.po11219-list-section:has(.po11219-searchgrid){
  padding-top:0!important;
}
.po11219-list-section:has(.po11219-searchgrid) .po11219-list-title{
  margin-bottom:10px!important;
}
.po11219-list-section:has(.po11219-searchgrid) .po11219-searchgrid{
  margin-top:0!important;
  padding-top:0!important;
  min-height:0!important;
  align-items:end!important;
}
.po11219-list-section:has(.po11219-searchgrid) .po11219-field{
  margin-top:0!important;
  padding-top:0!important;
}
.po11219-list-section:has(.po11219-searchgrid) .po11219-field label{
  margin-top:0!important;
}


/* STEP112-19-2: 창 폭이 줄어들 때 검색조건 우측이 잘리는 현상 수정 */
.po11219-list-section{
  min-width:0!important;
}
.po11219-searchgrid{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr)
    minmax(0,1.05fr)
    minmax(0,2fr)
    minmax(0,.85fr)
    max-content!important;
}
.po11219-field,
.po11219-date,
.po11219-buttons{
  min-width:0!important;
  max-width:100%!important;
}
.po11219-date-range{
  min-width:0!important;
  width:100%!important;
}
.po11219-date-range input{
  min-width:0!important;
}
.po11219-buttons{
  justify-self:end!important;
  max-width:100%!important;
}
.po11219-list-section{
  overflow:hidden!important;
}
@media(max-width:1380px){
  .po11219-searchgrid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .po11219-date{grid-column:span 2!important}
  .po11219-buttons{
    grid-column:span 2!important;
    justify-self:start!important;
  }
}

/* ===== SOURCE: css/step112-20.css ===== */
/* STEP112-20 수입관리 - 구매/발주관리와 동일한 UI 체계 */
#modal:has(.imp11220-form) .modal-box,
#modal:has(.imp11220-form) .modal{
  width:min(1180px,96vw)!important;
  max-width:1180px!important;
}
#modal .imp11220-form{width:100%!important}
#modal .imp11220-section,
.imp11220-list-section{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
#modal .imp11220-title,
.imp11220-list-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
#modal .imp11220-titlebar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:0 10px 0 0!important;
  background:var(--dr-section-title-bg)!important;
}
#modal .imp11220-titlebar .imp11220-title-inline{
  width:auto!important;
  margin:0!important;
  flex:1 1 auto!important;
}
#modal .imp11220-item-actions,
.imp11220-actions,
.imp11220-buttons{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
#modal .imp11220-item-actions{flex:0 0 auto!important;white-space:nowrap!important}
#modal .imp11220-rate-row{
  display:flex!important;
  gap:6px!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}
#modal .imp11220-rate-row input{flex:1 1 180px!important;min-width:0!important}
.imp11220-notice{
  margin-top:10px!important;
  padding:9px 12px!important;
  border:1px solid var(--dr-component-border)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--dr-field-label)!important;
  font-size:13px!important;
  line-height:1.35!important;
}
.imp11220-searchgrid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.05fr) minmax(0,2fr) minmax(0,.85fr) max-content!important;
  gap:10px 12px!important;
  align-items:end!important;
  width:100%!important;
  min-width:0!important;
}
.imp11220-field,.imp11220-date,.imp11220-buttons{min-width:0!important;max-width:100%!important}
.imp11220-field label{
  display:block!important;
  margin-bottom:5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
  white-space:nowrap!important;
}
.imp11220-field input,.imp11220-field select{
  width:100%!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.imp11220-date-range{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
}
.imp11220-date-range input{min-width:0!important}
.imp11220-date-range span{text-align:center!important;font-weight:700!important;color:var(--dr-field-label)!important}
.imp11220-buttons{justify-self:end!important;white-space:nowrap!important}
.imp11220-buttons .btn{height:38px!important;min-height:38px!important;margin:0!important}
.imp11220-table-section .table-wrap{
  margin:0!important;border:1px solid #c7d9e8!important;border-radius:6px!important;overflow:auto!important;background:#fff!important;
}
.imp11220-table-section .table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important}
.imp11220-table-section .table thead th{background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;font-weight:700!important;border-bottom:1px solid var(--dr-section-border)!important}
.imp11220-table-section .table tbody td{background:#fff!important;border-bottom:1px solid #e3edf4!important}
.imp11220-table-section .table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.imp11220-table-section .table tbody tr:hover td{background:var(--dr-row-hover)!important}
@media(max-width:1380px){
 .imp11220-searchgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 .imp11220-date{grid-column:span 2!important}
 .imp11220-buttons{grid-column:span 2!important;justify-self:start!important}
}
@media(max-width:760px){
 .imp11220-searchgrid{grid-template-columns:1fr 1fr!important}
 .imp11220-date,.imp11220-buttons{grid-column:1/-1!important}
}
@media(max-width:520px){
 .imp11220-searchgrid{grid-template-columns:1fr!important}
 .imp11220-date,.imp11220-buttons{grid-column:auto!important}
}

/* ===== SOURCE: css/step112-20-2.css ===== */
/* STEP112-20-2 구매/발주/수입 검색조건 공통 구조 */
.material112202-search-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
  align-items:end!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.material112202-search-fields{
  display:grid!important;
  grid-template-columns:
    minmax(110px,.9fr)
    minmax(120px,1fr)
    minmax(140px,1.1fr)
    minmax(270px,1.8fr)
    minmax(120px,.8fr)!important;
  gap:10px 12px!important;
  align-items:end!important;
  min-width:0!important;
}
.material112202-field{
  min-width:0!important;
  max-width:100%!important;
}
.material112202-field label{
  display:block!important;
  margin:0 0 5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
  white-space:nowrap!important;
}
.material112202-field input,
.material112202-field select{
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.material112202-date-range{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;
  gap:6px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
}
.material112202-date-range input{
  min-width:0!important;
}
.material112202-date-range span{
  text-align:center!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
}
.material112202-search-actions{
  display:flex!important;
  align-items:end!important;
  justify-content:flex-end!important;
  gap:8px!important;
  min-width:max-content!important;
  white-space:nowrap!important;
}
.material112202-search-actions .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  white-space:nowrap!important;
}
@media(max-width:1380px){
  .material112202-search-fields{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .material112202-date{
    grid-column:span 2!important;
  }
}
@media(max-width:980px){
  .material112202-search-fields{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .material112202-date{
    grid-column:1/-1!important;
  }
}
@media(max-width:700px){
  .material112202-search-row{
    grid-template-columns:1fr!important;
  }
  .material112202-search-actions{
    justify-content:flex-start!important;
  }
}
@media(max-width:520px){
  .material112202-search-fields{
    grid-template-columns:1fr!important;
  }
  .material112202-date{
    grid-column:auto!important;
  }
}

/* ===== SOURCE: css/step112-21.css ===== */
/* STEP112-21 입고관리 UI 통일 */
.gr11221-listtop,.gr11221-form{width:100%;min-width:0}
.gr11221-section,.gr11221-form-section{
  box-sizing:border-box!important;width:100%!important;min-width:0!important;
  margin:0 0 14px!important;padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;border-radius:7px!important;
  background:var(--dr-section-bg)!important;overflow:hidden!important;
}
.gr11221-title,.gr11221-form-title{
  box-sizing:border-box!important;width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important;
}
.gr11221-actions{display:flex!important;gap:8px!important;align-items:center!important;flex-wrap:wrap!important}
.gr11221-notice{margin-top:10px!important;padding:9px 12px!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;background:#fff!important;color:var(--dr-field-label)!important;font-size:13px!important}
.gr11221-kpi{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important}
.gr11221-kpi>div{background:#fff!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;padding:10px 12px!important;display:flex!important;justify-content:space-between!important;gap:10px!important;align-items:center!important}
.gr11221-kpi strong{font-size:17px!important}
.gr11221-table-section .table-wrap{margin:0!important;border:1px solid #c7d9e8!important;border-radius:6px!important;overflow:auto!important;background:#fff!important}
.gr11221-table-section .table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important}
.gr11221-table-section .table thead th{background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;font-weight:700!important;border-bottom:1px solid var(--dr-section-border)!important}
.gr11221-table-section .table tbody td{background:#fff!important;border-bottom:1px solid #e3edf4!important}
.gr11221-table-section .table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.gr11221-table-section .table tbody tr:hover td{background:var(--dr-row-hover)!important}
#modal:has(.gr11221-form) .modal-box,#modal:has(.gr11221-form) .modal{width:min(1180px,96vw)!important;max-width:1180px!important}
@media(max-width:760px){.gr11221-kpi{grid-template-columns:1fr!important}}

/* ===== SOURCE: css/step112-22.css ===== */
/* STEP112-22 재고관리 UI 통일 */
.inv11222-listtop{width:100%;min-width:0}
.inv11222-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.inv11222-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.inv11222-actions{display:flex!important;gap:8px!important;align-items:center!important;flex-wrap:wrap!important}
.inv11222-notice{margin-top:10px!important;padding:9px 12px!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;background:#fff!important;color:var(--dr-field-label)!important;font-size:13px!important}
.inv11222-kpi{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important}
.inv11222-kpi>div{background:#fff!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;padding:10px 12px!important;display:flex!important;justify-content:space-between!important;gap:10px!important;align-items:center!important}
.inv11222-kpi strong{font-size:17px!important}
.inv11222-search-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:end!important;max-width:850px!important}
.inv11222-ledger-search{display:grid!important;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto!important;gap:12px!important;align-items:end!important;max-width:850px!important}
.inv11222-field{min-width:0!important}
.inv11222-field label{display:block!important;margin:0 0 5px!important;font-weight:700!important;color:var(--dr-field-label)!important}
.inv11222-field input,.inv11222-field select{width:100%!important;min-width:0!important;height:38px!important;box-sizing:border-box!important;border:1px solid #b8cfe2!important;border-radius:7px!important;background:#fff!important}
.inv11222-search-actions{display:flex!important;gap:8px!important;align-items:end!important;white-space:nowrap!important}
.inv11222-search-actions .btn{height:38px!important;min-height:38px!important;margin:0!important}
.inv11222-table-section .table-wrap{margin:0!important;border:1px solid #c7d9e8!important;border-radius:6px!important;overflow:auto!important;background:#fff!important}
.inv11222-table-section .table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important}
.inv11222-table-section .table thead th{background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;font-weight:700!important;border-bottom:1px solid var(--dr-section-border)!important}
.inv11222-table-section .table tbody td{background:#fff!important;border-bottom:1px solid #e3edf4!important}
.inv11222-table-section .table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.inv11222-table-section .table tbody tr:hover td{background:var(--dr-row-hover)!important}
@media(max-width:900px){.inv11222-kpi{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.inv11222-search-row,.inv11222-ledger-search{grid-template-columns:1fr!important}.inv11222-search-actions{justify-content:flex-start!important}.inv11222-kpi{grid-template-columns:1fr!important}}

/* ===== SOURCE: css/step112-23.css ===== */
/* STEP112-23 출고관리 UI 통일 */
.shp11223-listtop,.shp11223-form{width:100%;min-width:0}
.shp11223-section,.shp11223-form-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.shp11223-title,.shp11223-form-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.shp11223-actions{display:flex!important;gap:8px!important;align-items:center!important;flex-wrap:wrap!important}
.shp11223-notice{margin-top:10px!important;padding:9px 12px!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;background:#fff!important;color:var(--dr-field-label)!important;font-size:13px!important}
.shp11223-table-section .table-wrap{margin:0!important;border:1px solid #c7d9e8!important;border-radius:6px!important;overflow:auto!important;background:#fff!important}
.shp11223-table-section .table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important}
.shp11223-table-section .table thead th{background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;font-weight:700!important;border-bottom:1px solid var(--dr-section-border)!important}
.shp11223-table-section .table tbody td{background:#fff!important;border-bottom:1px solid #e3edf4!important}
.shp11223-table-section .table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.shp11223-table-section .table tbody tr:hover td{background:var(--dr-row-hover)!important}
#modal:has(.shp11223-form) .modal-box,#modal:has(.shp11223-form) .modal{width:min(1180px,96vw)!important;max-width:1180px!important}

/* ===== SOURCE: css/step112-24.css ===== */
/* STEP112-24 현장등록·수정·현장목록 UI 통일 */
.site11224-listtop,
.site11224-form{
  width:100%;
  min-width:0;
}
.site11224-section,
.site11224-form-section{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
.site11224-title,
.site11224-form-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.site11224-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.site11224-notice{
  margin-top:10px!important;
  padding:9px 12px!important;
  border:1px solid var(--dr-component-border)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--dr-field-label)!important;
  font-size:13px!important;
  line-height:1.35!important;
}
.site11224-search-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
  align-items:end!important;
  width:100%!important;
  min-width:0!important;
}
.site11224-search-fields{
  display:grid!important;
  grid-template-columns:minmax(260px,2fr) minmax(160px,.8fr)!important;
  gap:10px 12px!important;
  align-items:end!important;
  min-width:0!important;
}
.site11224-field{
  min-width:0!important;
}
.site11224-field label,
.site11224-form-section label{
  display:block!important;
  margin:0 0 5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
}
.site11224-field input,
.site11224-field select,
.site11224-form-section input,
.site11224-form-section select,
.site11224-form-section textarea{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.site11224-field input,
.site11224-field select{
  height:38px!important;
  min-height:38px!important;
}
.site11224-search-actions{
  display:flex!important;
  align-items:end!important;
  justify-content:flex-end!important;
  gap:8px!important;
  white-space:nowrap!important;
}
.site11224-search-actions .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
}
.site11224-table-section .drawing-table8{
  width:100%!important;
  margin:0!important;
  border-collapse:collapse!important;
  background:#fff!important;
}
.site11224-table-section>div[id="site_register_list8"]{
  border:1px solid #c7d9e8!important;
  border-radius:6px!important;
  overflow:auto!important;
  background:#fff!important;
}
.site11224-table-section .drawing-table8 thead th{
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  font-weight:700!important;
  border-bottom:1px solid var(--dr-section-border)!important;
}
.site11224-table-section .drawing-table8 tbody td{
  background:#fff!important;
  border-bottom:1px solid #e3edf4!important;
}
.site11224-table-section .drawing-table8 tbody tr:nth-child(even) td{
  background:var(--dr-row-alt)!important;
}
.site11224-table-section .drawing-table8 tbody tr:hover td{
  background:var(--dr-row-hover)!important;
}
.site11224-form .form-grid8{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px 12px!important;
}
.site11224-form .qty-grid8{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
.site11224-form .qty-box8{
  background:#fff!important;
  border:1px solid #d5e1ec!important;
}
.site11224-form .etc-qty-box8{
  background:#fffaf4!important;
}
.site11224-total{
  margin-top:10px!important;
  text-align:right!important;
  font-weight:800!important;
  color:var(--dr-field-label)!important;
}
#modal:has(.site11224-form) .modal-box,
#modal:has(.site11224-form) .modal{
  width:min(1180px,96vw)!important;
  max-width:1180px!important;
}
@media(max-width:900px){
  .site11224-form .form-grid8,
  .site11224-form .qty-grid8{
    grid-template-columns:1fr 1fr!important;
  }
  .site11224-search-fields{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:700px){
  .site11224-search-row{
    grid-template-columns:1fr!important;
  }
  .site11224-search-actions{
    justify-content:flex-start!important;
  }
}
@media(max-width:520px){
  .site11224-form .form-grid8,
  .site11224-form .qty-grid8,
  .site11224-search-fields{
    grid-template-columns:1fr!important;
  }
}

/* ===== SOURCE: css/step112-24-1.css ===== */
/* STEP112-24-1 현장현황: 7개 공정을 항상 한 줄로 표시 */
.site8 .dashboard-grid{
  grid-template-columns:1fr!important;
}
.site8 .process-dash{
  width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
}
.site8 .stage-dashboard{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  min-width:760px!important;
}
.site8 .stage-dash-row{
  min-width:0!important;
  min-height:126px!important;
}
.site8 .stage-label{
  justify-content:center!important;
}
.site8 .stage-label b{
  white-space:nowrap!important;
}
.site8 .dash-side.site112241-summary{
  display:grid!important;
  grid-template-columns:1fr!important;
  width:100%!important;
}
.site8 .dash-side.site112241-summary>.card{
  width:100%!important;
}
@media(max-width:1000px){
  .site8 .stage-dashboard{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    min-width:760px!important;
  }
}
@media(max-width:800px){
  .site8 .stage-dashboard{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    min-width:760px!important;
  }
}
@media(max-width:520px){
  .site8 .stage-dashboard{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    min-width:760px!important;
  }
}

/* ===== SOURCE: css/step112-24-2.css ===== */
/* STEP112-24-2 시공관리 리스트 테이블 구조 통일 */
.site112242-work-wrap{
  width:100%;
  min-width:0;
  overflow:auto;
  border:1px solid #c7d9e8;
  border-radius:7px;
  background:#fff;
}
.site112242-work-table{
  width:100%!important;
  min-width:1160px!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
  background:#fff!important;
  margin:0!important;
}
.site112242-work-table col.c-no{width:110px}
.site112242-work-table col.c-location{width:220px}
.site112242-work-table col.c-drawing{width:115px}
.site112242-work-table col.c-stage{width:125px}
.site112242-work-table col.c-done{width:90px}
.site112242-work-table col.c-today{width:90px}
.site112242-work-table col.c-photo{width:180px}
.site112242-work-table col.c-status{width:120px}
.site112242-work-table col.c-memo{width:150px}

.site112242-work-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:2!important;
  height:42px!important;
  padding:8px 7px!important;
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  border-right:1px solid var(--dr-table-divider)!important;
  border-bottom:1px solid var(--dr-section-border)!important;
  font-size:12px!important;
  font-weight:700!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.site112242-work-table thead th:last-child{border-right:0!important}
.site112242-work-table tbody td{
  height:48px!important;
  padding:7px!important;
  border-right:1px solid #e4edf4!important;
  border-bottom:1px solid #e3edf4!important;
  background:#fff!important;
  vertical-align:middle!important;
  font-size:12px!important;
}
.site112242-work-table tbody td:last-child{border-right:0!important}
.site112242-work-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.site112242-work-table tbody tr:hover td{background:var(--dr-row-hover)!important}

.site112242-no,
.site112242-drawing,
.site112242-center,
.site112242-status{text-align:center!important}

.site112242-location{
  white-space:normal!important;
  word-break:keep-all!important;
  line-height:1.35!important;
}
.site112242-stage{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6px!important;
  white-space:nowrap!important;
}
.site112242-stage .stage-num{flex:0 0 auto!important}
.site112242-stage b{font-size:12px!important;color:var(--dr-field-label)!important}
.site112242-photos{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  flex-wrap:wrap!important;
}
.site112242-photos .btn{
  min-height:32px!important;
  padding:5px 8px!important;
  white-space:nowrap!important;
}
.site112242-memo{
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  box-sizing:border-box!important;
  padding:5px 7px!important;
  border:1px solid #b8cfe2!important;
  border-radius:6px!important;
  background:#fff!important;
}
.site112242-work-table .today-input{
  width:58px!important;
  height:32px!important;
  padding:5px!important;
  box-sizing:border-box!important;
  text-align:center!important;
}
.site112242-status{
  font-weight:700!important;
  white-space:nowrap!important;
}

/* ===== SOURCE: css/step112-24-3.css ===== */
/* STEP112-24-3 현장대장 UI 통일 */
.site112243-ledger{width:100%;min-width:0}
.site112243-section{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
  padding:0 14px 14px!important;
  border:1px solid var(--dr-section-border)!important;
  border-radius:7px!important;
  background:var(--dr-section-bg)!important;
  overflow:hidden!important;
}
.site112243-title{
  box-sizing:border-box!important;
  width:calc(100% + 28px)!important;
  margin:0 -14px 14px!important;
  padding:11px 14px!important;
  background:var(--dr-section-title-bg)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.site112243-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.site112243-notice{
  margin-top:10px!important;
  padding:9px 12px!important;
  border:1px solid var(--dr-component-border)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--dr-field-label)!important;
  font-size:13px!important;
}
.site112243-search-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
}
.site112243-search-fields{
  display:grid!important;
  grid-template-columns:minmax(260px,2fr) minmax(160px,.8fr) minmax(140px,.7fr)!important;
  gap:10px 12px!important;
  min-width:0!important;
}
.site112243-field{min-width:0!important}
.site112243-field label{
  display:block!important;
  margin:0 0 5px!important;
  font-weight:700!important;
  color:var(--dr-field-label)!important;
}
.site112243-field input,
.site112243-field select{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  border:1px solid #b8cfe2!important;
  border-radius:7px!important;
  background:#fff!important;
}
.site112243-search-actions{
  display:flex!important;
  align-items:end!important;
  justify-content:flex-end!important;
  gap:8px!important;
  white-space:nowrap!important;
}
.site112243-search-actions .btn{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
}
.site112243-ledger-wrap{
  width:100%!important;
  min-width:0!important;
  overflow:auto!important;
  border:1px solid #c7d9e8!important;
  border-radius:7px!important;
  background:#fff!important;
}
.site112243-ledger-table{
  width:100%!important;
  min-width:960px!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
  background:#fff!important;
  margin:0!important;
}
.site112243-ledger-table col.c-site{width:250px}
.site112243-ledger-table col.c-type{width:105px}
.site112243-ledger-table col.c-q{width:70px}
.site112243-ledger-table col.c-total{width:70px}
.site112243-ledger-table col.c-progress{width:110px}
.site112243-ledger-table col.c-status{width:85px}
.site112243-ledger-table col.c-action{width:90px}
.site112243-ledger-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:2!important;
  height:42px!important;
  padding:8px 7px!important;
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  border-right:1px solid var(--dr-table-divider)!important;
  border-bottom:1px solid var(--dr-section-border)!important;
  text-align:center!important;
  font-size:12px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.site112243-ledger-table tbody td{
  padding:8px 7px!important;
  border-right:1px solid #e4edf4!important;
  border-bottom:1px solid #e3edf4!important;
  background:#fff!important;
  vertical-align:middle!important;
  text-align:center!important;
  font-size:12px!important;
}
.site112243-ledger-table thead th:last-child,
.site112243-ledger-table tbody td:last-child{border-right:0!important}
.site112243-ledger-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.site112243-ledger-table tbody tr:hover td{background:var(--dr-row-hover)!important}
.site112243-ledger-table td.site112243-site{text-align:left!important}
.site112243-site b{display:block!important;font-size:13px!important;color:#223f59!important}
.site112243-site small{display:block!important;margin-top:3px!important;color:#718096!important;white-space:normal!important;line-height:1.3!important}
.site112243-status{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:52px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  font-size:11px!important;
  font-weight:700!important;
}
.site112243-status.progress{background:#fff4d8!important;color:#8a5a00!important;border:1px solid #f0d18a!important}
.site112243-status.done{background:#e8f7ee!important;color:#217044!important;border:1px solid #b9e0c9!important}
.site112243-ledger-table tr.site112243-selected td{
  background:#eaf4ff!important;
}
.site112243-detail-section #ledger_detail8{
  min-width:0!important;
}
.site112243-detail-section .ledger-detail-grid>.card,
.site112243-detail-section .ledger-products>.card{
  border:1px solid #c7d9e8!important;
  box-shadow:none!important;
}
.site112243-detail-section .drawing-table8 thead th{
  background:var(--dr-table-head-bg)!important;
  color:var(--dr-table-head-text)!important;
  font-weight:700!important;
}
.site112243-detail-section .drawing-table8 tbody tr:nth-child(even) td{
  background:var(--dr-row-alt)!important;
}
@media(max-width:900px){
  .site112243-search-fields{
    grid-template-columns:1fr 1fr!important;
  }
  .site112243-search-fields .site112243-field:first-child{
    grid-column:1/-1!important;
  }
}
@media(max-width:700px){
  .site112243-search-row{
    grid-template-columns:1fr!important;
  }
  .site112243-search-actions{
    justify-content:flex-start!important;
  }
}
@media(max-width:520px){
  .site112243-search-fields{
    grid-template-columns:1fr!important;
  }
  .site112243-search-fields .site112243-field:first-child{
    grid-column:auto!important;
  }
}

/* ===== SOURCE: css/step112-25.css ===== */
/* STEP112-25 AS관리 전체 구조 통일 */
.as11225-page{width:100%;min-width:0}
.as11225-section{box-sizing:border-box;width:100%;min-width:0;margin:0 0 14px;padding:0 14px 14px;border:1px solid var(--dr-section-border);border-radius:7px;background:var(--dr-section-bg);overflow:hidden}
.as11225-title{box-sizing:border-box;width:calc(100% + 28px);margin:0 -14px 14px;padding:11px 14px;background:var(--dr-section-title-bg);color:#fff;font-size:16px;font-weight:700;line-height:1.2}
.as11225-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.as11225-notice{margin-top:10px;padding:9px 12px;border:1px solid var(--dr-component-border);border-radius:6px;background:#fff;color:var(--dr-field-label);font-size:13px}
.as11225-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-top:12px}
.as11225-kpi{padding:14px 16px;border:1px solid #d6e2ec;border-radius:8px;background:#fff}.as11225-kpi span{display:block;color:#64748b;font-size:12px;font-weight:700}.as11225-kpi strong{display:block;margin-top:4px;color:#223f59;font-size:26px;font-variant-numeric:tabular-nums}
.as11225-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;width:100%;min-width:0}
.as11225-search-fields{display:grid;grid-template-columns:minmax(105px,.75fr) minmax(180px,1.35fr) minmax(120px,.85fr) minmax(270px,1.75fr) minmax(115px,.75fr);gap:10px 12px;min-width:0}
.as11225-search-field{min-width:0}.as11225-search-field label{display:block;margin:0 0 5px;font-weight:700;color:var(--dr-field-label);font-size:12px}.as11225-search-field input,.as11225-search-field select{box-sizing:border-box;width:100%;min-width:0;height:38px;border:1px solid #b8cfe2;border-radius:7px;background:#fff;padding:0 9px}
.as11225-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}.as11225-date-range span{text-align:center;color:#64748b}
.as11225-search-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px;white-space:nowrap}.as11225-search-actions .btn{height:38px;min-height:38px;margin:0}
.as11225-table-wrap{width:100%;min-width:0;overflow:auto;border:1px solid #c7d9e8;border-radius:7px;background:#fff}
.as11225-table{width:100%!important;min-width:100%!important;table-layout:fixed!important;border-collapse:collapse;background:#fff;margin:0}.as11225-table-compact,.as11225-table-register,.as11225-table-ledger{width:100%!important;min-width:100%!important}@media(max-width:1180px){.as11225-table-compact{min-width:1040px!important}.as11225-table-register{min-width:1320px!important}.as11225-table-ledger{min-width:1260px!important}}
.as11225-table thead th{position:sticky;top:0;z-index:2;height:42px;padding:8px 7px;background:var(--dr-table-head-bg);color:var(--dr-table-head-text);border-right:1px solid var(--dr-table-divider);border-bottom:1px solid var(--dr-section-border);text-align:center;font-size:12px;font-weight:700;white-space:nowrap}
.as11225-table tbody td{height:46px;padding:7px;border-right:1px solid #e4edf4;border-bottom:1px solid #e3edf4;background:#fff;vertical-align:middle;text-align:center;font-size:12px;word-break:keep-all}.as11225-table thead th:last-child,.as11225-table tbody td:last-child{border-right:0}.as11225-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)}.as11225-table tbody tr:hover td{background:var(--dr-row-hover)}
.as11225-table .as11225-symptom{text-align:left;white-space:normal;line-height:1.35}.as11225-money{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.as11225-actions-cell{display:table-cell!important;vertical-align:middle!important;white-space:nowrap!important}.as11225-actions{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:nowrap;white-space:nowrap;min-width:0}.as11225-actions .btn{display:inline-flex;align-items:center;justify-content:center;padding:5px 7px;min-height:31px;min-width:0;white-space:nowrap}.as11225-table-register .as11225-actions .btn{padding-left:6px;padding-right:6px}.as11225-status-select{width:88px;max-width:100%;height:32px;border:1px solid #b8cfe2;border-radius:6px;background:#fff}
.as11225-badge{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:4px 8px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;font-size:11px;font-weight:800;white-space:nowrap}.as11225-badge[data-status="접수"]{background:#eef6ff;border-color:#bfd7ef;color:#245b88}.as11225-badge[data-status="방문예정"]{background:#fff7df;border-color:#edd79b;color:#7c5b00}.as11225-badge[data-status="처리중"]{background:#fff0e6;border-color:#f1c3a6;color:#99501f}.as11225-badge[data-status="완료"]{background:#eaf7ef;border-color:#b9dfc7;color:#247045}.as11225-badge[data-status="보류"]{background:#f1f3f5;border-color:#d2d7dc;color:#5d6670}
.as11225-activity{background:#fff;border:1px solid var(--dr-component-border);border-radius:7px;padding:0 12px}.as11225-activity-row{display:grid;grid-template-columns:85px minmax(180px,.8fr) minmax(0,1.5fr);gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e8eef3}.as11225-activity-row:last-child{border-bottom:0}.as11225-activity-row small{color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as11225-form{display:grid;grid-template-columns:1fr;gap:12px}.as11225-form-section{border:1px solid var(--dr-section-border);border-radius:7px;background:var(--dr-section-bg);overflow:hidden}.as11225-form-title{padding:10px 12px;background:var(--dr-section-title-bg);color:#fff;font-size:14px;font-weight:800}.as11225-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;padding:12px}.as11225-field{min-width:0}.as11225-field label{display:block;margin:0 0 5px;color:var(--dr-field-label);font-size:12px;font-weight:700}.as11225-field input,.as11225-field select,.as11225-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #b8cfe2;border-radius:7px;background:#fff;padding:7px 9px}.as11225-field input,.as11225-field select{height:38px}.as11225-field textarea{resize:vertical;min-height:78px}.as11225-span-2{grid-column:span 2}.as11225-photo-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.as11225-photo-row input[type=file]{flex:1;min-width:240px;height:auto;padding:7px}.as11225-field small{display:block;margin-top:6px;color:#64748b}
@media(max-width:1380px){.as11225-search-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.as11225-date-field{grid-column:span 2}}
@media(max-width:980px){.as11225-search-fields{grid-template-columns:1fr 1fr}.as11225-date-field{grid-column:1/-1}.as11225-form-grid{grid-template-columns:1fr 1fr}.as11225-kpi-row{grid-template-columns:repeat(3,minmax(110px,1fr))}}
@media(max-width:700px){.as11225-search-row{grid-template-columns:1fr}.as11225-search-actions{justify-content:flex-start}.as11225-activity-row{grid-template-columns:1fr}.as11225-activity-row small{white-space:normal}.as11225-kpi-row{grid-template-columns:repeat(2,minmax(100px,1fr))}}
@media(max-width:520px){.as11225-search-fields,.as11225-form-grid{grid-template-columns:1fr}.as11225-date-field,.as11225-span-2{grid-column:auto}.as11225-date-range{grid-template-columns:1fr}.as11225-date-range span{display:none}.as11225-kpi-row{grid-template-columns:1fr 1fr}}

/* ===== SOURCE: css/step112-26.css ===== */
/* STEP112-26 영업관리 + 생산관리 목록/검색/테이블 구조 통일 */
.erp11226-page{width:100%;min-width:0}
.erp11226-section{box-sizing:border-box;width:100%;min-width:0;margin:0 0 14px;padding:0 14px 14px;border:1px solid var(--dr-section-border);border-radius:7px;background:var(--dr-section-bg);overflow:hidden}
.erp11226-title{box-sizing:border-box;width:calc(100% + 28px);margin:0 -14px 14px;padding:11px 14px;background:var(--dr-section-title-bg);color:#fff;font-size:16px;font-weight:700;line-height:1.2}
.erp11226-top-actions,.erp11226-list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.erp11226-count{margin-left:auto;font-weight:700;color:var(--dr-field-label);white-space:nowrap}
.erp11226-spacer{margin-left:auto}
.erp11226-notice{margin-top:10px;padding:9px 12px;border:1px solid var(--dr-component-border);border-radius:6px;background:#fff;color:var(--dr-field-label);font-size:13px;line-height:1.45}
.erp11226-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;width:100%;min-width:0}
.erp11226-search-fields{display:grid;gap:10px 12px;min-width:0;align-items:end}
.erp11226-search-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.erp11226-search-fields-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.erp11226-search-fields-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.erp11226-search-fields-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.erp11226-search-field{min-width:0}
.erp11226-search-field label{display:block;margin:0 0 5px;font-weight:700;color:var(--dr-field-label);font-size:12px}
.erp11226-search-field input,.erp11226-search-field select{box-sizing:border-box;width:100%;min-width:0;height:38px;border:1px solid #b8cfe2;border-radius:7px;background:#fff;padding:0 9px}
.erp11226-span-2{grid-column:span 2}
.erp11226-search-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px;white-space:nowrap}
.erp11226-search-actions .btn{height:38px;min-height:38px;margin:0}
.erp11226-list-toolbar{margin:0 0 10px}
.erp11226-list-toolbar strong{color:var(--dr-field-label)}
.erp11226-list-toolbar>span:not(.erp11226-spacer){color:#64748b;font-size:12px}
.erp11226-table-wrap{width:100%;min-width:0;overflow:auto;border:1px solid #c7d9e8;border-radius:7px;background:#fff}
.erp11226-table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important;table-layout:auto!important}
.erp11226-customer-table{min-width:1550px}
.erp11226-item-table{min-width:1500px}
.erp11226-quote-table{min-width:1480px}
.erp11226-order-table{min-width:1280px;table-layout:fixed!important}
.erp11226-production-table{min-width:1450px}
.erp11226-table thead th{position:sticky;top:0;z-index:2;height:42px;padding:8px 7px!important;background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;border-right:1px solid var(--dr-table-divider)!important;border-bottom:1px solid var(--dr-section-border)!important;text-align:center!important;font-size:12px;font-weight:700!important;white-space:nowrap}
.erp11226-table tbody td{height:46px;padding:7px!important;border-right:1px solid #e4edf4!important;border-bottom:1px solid #e3edf4!important;background:#fff!important;vertical-align:middle!important;text-align:center;font-size:12px;word-break:keep-all}
.erp11226-table thead th:last-child,.erp11226-table tbody td:last-child{border-right:0!important}
.erp11226-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.erp11226-table tbody tr:hover td{background:var(--dr-row-hover)!important}
.erp11226-left{text-align:left!important;white-space:normal;line-height:1.35}
.erp11226-money{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}
.erp11226-actions{white-space:nowrap!important;min-width:150px}
.erp11226-action-line{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;flex-wrap:nowrap!important;white-space:nowrap!important;width:max-content!important;min-width:max-content!important}
.erp11226-actions .btn{display:inline-flex!important;width:auto!important;min-width:0!important;margin:2px!important;padding:5px 7px!important;white-space:nowrap!important;vertical-align:middle}
.erp11226-order-table .erp11226-actions{min-width:350px}
.erp11226-quote-table .erp11226-actions{min-width:310px}
.erp11226-customer-table td:last-child{min-width:215px;white-space:nowrap}
.erp11226-item-table td:last-child{min-width:130px;white-space:nowrap}
.erp11226-page .d96-ledger-summary .panel{margin:0!important;background:#fff!important}
@media(max-width:1380px){.erp11226-search-fields-6,.erp11226-search-fields-5,.erp11226-search-fields-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.erp11226-search-fields-3,.erp11226-search-fields-4,.erp11226-search-fields-5,.erp11226-search-fields-6{grid-template-columns:1fr 1fr}.erp11226-span-2{grid-column:1/-1}}
@media(max-width:700px){.erp11226-search-row{grid-template-columns:1fr}.erp11226-search-actions{justify-content:flex-start}.erp11226-count{margin-left:0}.erp11226-spacer{display:none}}
@media(max-width:520px){.erp11226-search-fields-3,.erp11226-search-fields-4,.erp11226-search-fields-5,.erp11226-search-fields-6{grid-template-columns:1fr}.erp11226-span-2{grid-column:auto}.erp11226-search-actions{flex-wrap:wrap}.erp11226-search-actions .btn{flex:1}}

/* ===== SOURCE: css/step112-27.css ===== */
/* STEP112-27 현장현황 · 도면관리 · 시공관리 기본 구조 통일 */
.site11227-page{width:100%;min-width:0}
.site11227-section{box-sizing:border-box;width:100%;min-width:0;margin:0 0 14px;padding:0 14px 14px;border:1px solid var(--dr-section-border);border-radius:7px;background:var(--dr-section-bg);overflow:hidden}
.site11227-title{box-sizing:border-box;width:calc(100% + 28px);margin:0 -14px 14px;padding:11px 14px;background:var(--dr-section-title-bg);color:#fff;font-size:16px;font-weight:700;line-height:1.2}
.site11227-head{margin:0!important;padding:0 0 2px!important}
.site11227-head h2{font-size:20px!important;color:#18324d!important}
.site11227-head p{font-size:13px!important;color:#64748b!important}
.site11227-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.site11227-notice{margin-top:10px;padding:9px 12px;border:1px solid var(--dr-component-border);border-radius:6px;background:#fff;color:var(--dr-field-label);font-size:13px;line-height:1.45}
.site11227-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;width:100%;min-width:0}
.site11227-search-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;min-width:0;align-items:end}
.site11227-field{min-width:0}
.site11227-field label{display:block;margin:0 0 5px;font-weight:700;color:var(--dr-field-label);font-size:12px}
.site11227-field input,.site11227-field select{box-sizing:border-box;width:100%;min-width:0;height:38px;border:1px solid #b8cfe2;border-radius:7px;background:#fff;padding:0 9px}
.site11227-search-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px;white-space:nowrap}
.site11227-search-actions .btn{height:38px;min-height:38px;margin:0}
.site11227-subtitle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;color:var(--dr-field-label);font-size:14px;font-weight:800}
.site11227-subtitle small{color:#64748b;font-size:12px;font-weight:600}
.site11227-table-wrap{width:100%;min-width:0;overflow:auto;border:1px solid #c7d9e8;border-radius:7px;background:#fff}
.site11227-table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important;table-layout:auto!important}
.site11227-location-table{min-width:980px!important}
.site11227-drawing-table{min-width:780px!important}
.site11227-table thead th{position:sticky;top:0;z-index:2;height:42px;padding:8px 7px!important;background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;border-right:1px solid var(--dr-table-divider)!important;border-bottom:1px solid var(--dr-section-border)!important;text-align:center!important;font-size:12px;font-weight:700!important;white-space:nowrap}
.site11227-table tbody td{height:46px;padding:7px!important;border-right:1px solid #e4edf4!important;border-bottom:1px solid #e3edf4!important;background:#fff!important;vertical-align:middle!important;text-align:center!important;font-size:12px;word-break:keep-all}
.site11227-table thead th:last-child,.site11227-table tbody td:last-child{border-right:0!important}
.site11227-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.site11227-table tbody tr:hover td{background:var(--dr-row-hover)!important}
.site11227-left{text-align:left!important;white-space:normal!important;line-height:1.35!important}
.site11227-actions-cell{white-space:nowrap!important;min-width:120px}
.site11227-actions-cell .btn{display:inline-flex!important;width:auto!important;min-width:0!important;margin:2px!important;padding:5px 8px!important;white-space:nowrap!important;vertical-align:middle}
.site11227-list-stack{display:grid;grid-template-columns:1fr;gap:14px}
.site11227-product-section .product-cards{margin-bottom:0!important}
.site11227-progress-section .dashboard-grid{margin:0!important}
.site11227-progress-section .footer-note{margin-bottom:0!important}
.site11227-stage-search .progress-stage-tabs8{margin:0 0 12px!important}
.site11227-stage-search .product-cards{margin:0 0 12px!important}
.site11227-stage-search .site11227-search-fields{grid-template-columns:minmax(180px,.7fr) minmax(280px,1.6fr)}
.site11227-stage-search .site11227-search-row{margin-top:2px}
.site11227-drawing-count{margin-left:auto;color:var(--dr-field-label);font-weight:700;white-space:nowrap}
.site11227-section .site-selector-v3{margin:10px 0 0;background:#fff}
.site11227-section .site-drawings-layout{display:block!important}
.site11227-section .card{box-shadow:none!important}
@media(max-width:980px){
  .site11227-search-fields{grid-template-columns:1fr 1fr}
  .site11227-stage-search .site11227-search-fields{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .site11227-search-row{grid-template-columns:1fr}
  .site11227-search-actions{justify-content:flex-start;flex-wrap:wrap}
  .site11227-head{align-items:flex-start!important}
  .site11227-actions{justify-content:flex-start;width:100%}
}
@media(max-width:520px){
  .site11227-search-fields,.site11227-stage-search .site11227-search-fields{grid-template-columns:1fr}
  .site11227-search-actions .btn{flex:1}
}

/* ===== SOURCE: css/step112-28.css ===== */
/* STEP112-28 재고관리 기본 구조/테이블 최신 공통 규격 통일 */
.inventory109.inv11222-listtop{width:100%;min-width:0}
.inventory109 .inv11222-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.inventory109 .inv11222-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.inventory109 .inv11222-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;min-width:0!important}
.inventory109 .inv11222-actions .btn{margin:0!important;min-height:36px!important;white-space:nowrap!important}
.inventory109 .inv11222-notice{margin-top:10px!important;padding:9px 12px!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;background:#fff!important;color:var(--dr-field-label)!important;font-size:13px!important;line-height:1.45!important}
.inventory109 .inv11222-kpi{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important}
.inventory109 .inv11222-kpi>div{box-sizing:border-box!important;min-width:0!important;background:#fff!important;border:1px solid var(--dr-component-border)!important;border-radius:6px!important;padding:10px 12px!important;display:flex!important;justify-content:space-between!important;gap:10px!important;align-items:center!important}
.inventory109 .inv11222-kpi small{color:#64748b!important;font-weight:700!important}
.inventory109 .inv11222-kpi strong{font-size:17px!important;color:#18324d!important;font-variant-numeric:tabular-nums!important}
.inventory109 .inv11222-search-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:end!important;width:100%!important;max-width:none!important;min-width:0!important}
.inventory109 .inv11222-ledger-search{display:grid!important;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto!important;gap:12px!important;align-items:end!important;width:100%!important;max-width:900px!important;min-width:0!important}
.inventory109 .inv11222-field{min-width:0!important}
.inventory109 .inv11222-field label{display:block!important;margin:0 0 5px!important;font-weight:700!important;color:var(--dr-field-label)!important;font-size:12px!important}
.inventory109 .inv11222-field input,.inventory109 .inv11222-field select{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:38px!important;border:1px solid #b8cfe2!important;border-radius:7px!important;background:#fff!important;padding:0 9px!important}
.inventory109 .inv11222-search-actions{display:flex!important;align-items:end!important;justify-content:flex-end!important;gap:8px!important;white-space:nowrap!important}
.inventory109 .inv11222-search-actions .btn{height:38px!important;min-height:38px!important;margin:0!important}
.inventory109 .inv11222-table-section .table-wrap,
.inventory109 #invLedgerResult .table-wrap{width:100%!important;min-width:0!important;margin:0!important;overflow:auto!important;border:1px solid #c7d9e8!important;border-radius:7px!important;background:#fff!important}
.inventory109 .inv11222-table-section .table,
.inventory109 #invLedgerResult .table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important;table-layout:auto!important}
.inventory109 .inv11222-table-section .table{min-width:1050px!important}
.inventory109 #invLedgerResult .table{min-width:900px!important}
.inventory109 .inv11222-table-section .table thead th,
.inventory109 #invLedgerResult .table thead th{position:sticky!important;top:0!important;z-index:2!important;height:42px!important;padding:8px 7px!important;background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;border-right:1px solid var(--dr-table-divider)!important;border-bottom:1px solid var(--dr-section-border)!important;text-align:center!important;font-size:12px!important;font-weight:700!important;white-space:nowrap!important}
.inventory109 .inv11222-table-section .table tbody td,
.inventory109 #invLedgerResult .table tbody td{height:46px!important;padding:7px!important;border-right:1px solid #e4edf4!important;border-bottom:1px solid #e3edf4!important;background:#fff!important;vertical-align:middle!important;text-align:center!important;font-size:12px!important;word-break:keep-all!important}
.inventory109 .inv11222-table-section .table thead th:last-child,
.inventory109 .inv11222-table-section .table tbody td:last-child,
.inventory109 #invLedgerResult .table thead th:last-child,
.inventory109 #invLedgerResult .table tbody td:last-child{border-right:0!important}
.inventory109 .inv11222-table-section .table tbody tr:nth-child(even) td,
.inventory109 #invLedgerResult .table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}
.inventory109 .inv11222-table-section .table tbody tr:hover td,
.inventory109 #invLedgerResult .table tbody tr:hover td{background:var(--dr-row-hover)!important}
.inventory109 .inv11222-table-section td.num,
.inventory109 #invLedgerResult td.num{font-variant-numeric:tabular-nums!important;text-align:right!important}
.inventory109 .inventory-status{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:58px!important;padding:4px 8px!important;border-radius:999px!important;font-size:11px!important;font-weight:700!important;white-space:nowrap!important}
@media(max-width:900px){.inventory109 .inv11222-kpi{grid-template-columns:repeat(2,minmax(0,1fr))!important}.inventory109 .inv11222-ledger-search{grid-template-columns:1fr 1fr!important}.inventory109 .inv11222-ledger-search .inv11222-search-actions{grid-column:1/-1!important;justify-content:flex-start!important}}
@media(max-width:700px){.inventory109 .inv11222-search-row,.inventory109 .inv11222-ledger-search{grid-template-columns:1fr!important}.inventory109 .inv11222-search-actions{justify-content:flex-start!important;flex-wrap:wrap!important}}
@media(max-width:520px){.inventory109 .inv11222-kpi{grid-template-columns:1fr!important}.inventory109 .inv11222-search-actions .btn{flex:1!important}}

/* ===== SOURCE: css/step112-28-1.css ===== */
/* STEP112-28-1 재고 등록/조정/이동 모달 구조 통일 */
.inv112281-form{width:100%;min-width:0}
.inv112281-form-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.inv112281-form-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.inv112281-form .form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:0!important}
.inv112281-form label{display:block!important;margin:0 0 5px!important;color:var(--dr-field-label)!important;font-size:12px!important;font-weight:700!important}
.inv112281-form input,.inv112281-form select,.inv112281-form textarea{box-sizing:border-box!important;width:100%!important;min-width:0!important;border:1px solid #b8cfe2!important;border-radius:7px!important;background:#fff!important;padding:7px 9px!important}
.inv112281-form input,.inv112281-form select{height:38px!important}
.inv112281-full{width:100%;min-width:0}
.inv112281-help{margin-top:9px;padding:8px 10px;border:1px solid var(--dr-component-border);border-radius:6px;background:#fff;color:#64748b;font-size:12px;line-height:1.4}
#modal:has(.inv112281-form) .modal-box{width:min(900px,96vw)!important;max-width:900px!important}
#modal:has(.inv112281-form) .modal-actionbar h2{font-size:22px!important}
@media(max-width:700px){.inv112281-form .form-grid{grid-template-columns:1fr!important}#modal:has(.inv112281-form) .modal-box{width:96vw!important}}

/* ===== SOURCE: css/step112-29.css ===== */
/* STEP112-29 일정관리/업무일지/통합대시보드 공통 구조 통일 */
.office11229-page{width:100%;min-width:0}
.office11229-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.office11229-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.office11229-top-row,.office11229-dashboard-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;min-width:0!important}
.office11229-dashboard-head>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--dr-field-label)}
.office11229-dashboard-head>div:first-child b{font-size:15px}.office11229-dashboard-head>div:first-child span{font-size:12px;color:#64748b}
.office11229-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;min-width:0!important}
.office11229-actions .btn{margin:0!important;min-height:36px!important;white-space:nowrap!important}
.office11229-notice{flex:1 1 420px;min-width:0;padding:9px 12px;border:1px solid var(--dr-component-border);border-radius:6px;background:#fff;color:var(--dr-field-label);font-size:13px;line-height:1.45}
.office11229-list-info{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 9px;color:#64748b;font-size:12px}.office11229-list-info b{color:#18324d;font-size:13px}
.office11229-table-wrap{width:100%!important;min-width:0!important;margin:0!important;overflow:auto!important;border:1px solid #c7d9e8!important;border-radius:7px!important;background:#fff!important}
.office11229-table{width:100%!important;margin:0!important;border-collapse:collapse!important;background:#fff!important;table-layout:auto!important}
.office11229-schedule-page .office11229-table{min-width:900px!important}.office11229-diary-page .office11229-table{min-width:820px!important}
.office11229-table thead th{position:sticky!important;top:0!important;z-index:2!important;height:42px!important;padding:8px 7px!important;background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;border-right:1px solid var(--dr-table-divider)!important;border-bottom:1px solid var(--dr-section-border)!important;text-align:center!important;font-size:12px!important;font-weight:700!important;white-space:nowrap!important}
.office11229-table tbody td{height:46px!important;padding:7px!important;border-right:1px solid #e4edf4!important;border-bottom:1px solid #e3edf4!important;background:#fff!important;vertical-align:middle!important;text-align:center!important;font-size:12px!important;word-break:keep-all!important}
.office11229-table th:last-child,.office11229-table td:last-child{border-right:0!important}.office11229-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}.office11229-table tbody tr:hover td{background:var(--dr-row-hover)!important}
.office11229-calendar-section>.office-calendar{box-sizing:border-box!important;width:100%!important;margin:0!important;padding:12px!important;border:1px solid var(--dr-component-border)!important;border-radius:7px!important;background:#fff!important;box-shadow:none!important}
.office11229-calendar-section .calendar-v4-titlebar{margin-bottom:12px}.office11229-calendar-section .calendar-v4-titlebar h3{color:#18324d;font-size:17px!important}.office11229-calendar-section .calendar-v4-titlebar small{color:#64748b}
.office11229-kpi-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.office11229-kpi{box-sizing:border-box;min-width:0;padding:13px 14px;border:1px solid var(--dr-component-border);border-radius:7px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}.office11229-kpi span{color:#64748b;font-size:13px;font-weight:700}.office11229-kpi strong{color:#18324d;font-size:22px;font-variant-numeric:tabular-nums}
.office11229-dashboard-grid{display:grid!important;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)!important;gap:14px!important;align-items:start!important}.office11229-dashboard-grid>.office11229-section{height:100%}
.office11229-today-work{border:1px solid var(--dr-component-border);border-radius:7px;background:#fff;padding:2px 12px}.office11229-today-work .office-mini-row:last-child{border-bottom:0}.office11229-bottom-actions{justify-content:flex-end;margin-top:10px}
/* 일정 등록/수정, 업무일지 작성 모달 */
.office11229-form{width:100%;min-width:0}.office11229-form-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}.office11229-form-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}.office11229-form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:0!important}.office11229-form-grid>div{min-width:0}.office11229-form label{display:block!important;margin:0 0 5px!important;color:var(--dr-field-label)!important;font-size:12px!important;font-weight:700!important}.office11229-form input,.office11229-form select,.office11229-form textarea{box-sizing:border-box!important;width:100%!important;min-width:0!important;border:1px solid #b8cfe2!important;border-radius:7px!important;background:#fff!important;padding:7px 9px!important}.office11229-form input,.office11229-form select{height:38px!important}.office11229-form textarea{resize:vertical!important;line-height:1.45!important}.office11229-full{grid-column:1/-1!important;width:100%;min-width:0}
#modal:has(.office11229-form) .modal-box{width:min(900px,96vw)!important;max-width:900px!important}#modal:has(.office11229-form) .modal-actionbar h2{font-size:22px!important}
@media(max-width:1050px){.office11229-dashboard-grid{grid-template-columns:1fr!important}.office11229-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.office11229-top-row,.office11229-dashboard-head{align-items:stretch!important;flex-direction:column!important}.office11229-actions{width:100%!important}.office11229-actions .btn{flex:1 1 auto!important}.office11229-form-grid{grid-template-columns:1fr!important}.office11229-full{grid-column:auto!important}#modal:has(.office11229-form) .modal-box{width:96vw!important}.office11229-calendar-section>.office-calendar{padding:8px!important}}
@media(max-width:520px){.office11229-kpi-grid{grid-template-columns:1fr!important}.office11229-actions .btn{flex:1 1 45%!important}}

/* ===== SOURCE: css/step112-29-1.css ===== */
/* STEP112-29-1 달력 날짜 클릭 일정 모달 구조 통일 */
.office112291-day-modal{width:100%;min-width:0}
.office112291-day-section{box-sizing:border-box!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:0 14px 14px!important;border:1px solid var(--dr-section-border)!important;border-radius:7px!important;background:var(--dr-section-bg)!important;overflow:hidden!important}
.office112291-day-section:last-child{margin-bottom:0!important}
.office112291-day-title{box-sizing:border-box!important;width:calc(100% + 28px)!important;margin:0 -14px 14px!important;padding:11px 14px!important;background:var(--dr-section-title-bg)!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important}
.office112291-day-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.office112291-day-summary>div{box-sizing:border-box;min-width:0;padding:11px 12px;border:1px solid var(--dr-component-border);border-radius:7px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}
.office112291-day-summary span{color:#64748b;font-size:12px;font-weight:700;white-space:nowrap}.office112291-day-summary strong{color:#18324d;font-size:14px;text-align:right;overflow-wrap:anywhere}
.office112291-day-table-wrap{width:100%!important;min-width:0!important;margin:0!important;overflow:auto!important;border:1px solid #c7d9e8!important;border-radius:7px!important;background:#fff!important}
.office112291-day-table{width:100%!important;min-width:760px!important;margin:0!important;border-collapse:collapse!important;background:#fff!important;table-layout:auto!important}
.office112291-day-table thead th{height:42px!important;padding:8px 7px!important;background:var(--dr-table-head-bg)!important;color:var(--dr-table-head-text)!important;border-right:1px solid var(--dr-table-divider)!important;border-bottom:1px solid var(--dr-section-border)!important;text-align:center!important;font-size:12px!important;font-weight:700!important;white-space:nowrap!important}
.office112291-day-table tbody td{height:46px!important;padding:7px!important;border-right:1px solid #e4edf4!important;border-bottom:1px solid #e3edf4!important;background:#fff!important;vertical-align:middle!important;text-align:center!important;font-size:12px!important;word-break:keep-all!important}
.office112291-day-table th:last-child,.office112291-day-table td:last-child{border-right:0!important}.office112291-day-table tbody tr:nth-child(even) td{background:var(--dr-row-alt)!important}.office112291-day-table tbody tr:hover td{background:var(--dr-row-hover)!important}
.office112291-day-table .office112291-day-subject{text-align:left!important;font-weight:700!important;color:#18324d!important;min-width:180px!important}.office112291-day-empty{height:80px!important;color:#64748b!important;text-align:center!important}
#modal:has(.office112291-day-modal) .modal-box{width:min(980px,96vw)!important;max-width:980px!important}#modal:has(.office112291-day-modal) .modal-actionbar h2{font-size:22px!important}
#modal:has(.office112291-day-modal) #modalCancel{display:none!important}
@media(max-width:700px){.office112291-day-summary{grid-template-columns:1fr!important}#modal:has(.office112291-day-modal) .modal-box{width:96vw!important}.office112291-day-section{padding:0 10px 10px!important}.office112291-day-title{width:calc(100% + 20px)!important;margin:0 -10px 10px!important;padding:10px!important}}

/* ===== SOURCE: css/step112-29-2.css ===== */
/* STEP112-29-2 달력 빈 날짜 일정 등록 연결 */
.office112292-day-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;margin-top:10px!important;padding:10px 12px!important;border:1px solid var(--dr-component-border)!important;border-radius:7px!important;background:#fff!important}
.office112292-day-actions span{flex:1 1 320px;color:#64748b;font-size:12px;line-height:1.45}
.office112292-day-actions .btn{margin:0!important;min-height:36px!important;white-space:nowrap!important}
@media(max-width:700px){.office112292-day-actions{align-items:stretch!important;flex-direction:column!important}.office112292-day-actions .btn{width:100%!important}}

/* =========================================================
   STEP113-2-6-2 리스트 작업열 한 줄 고정
   - 견적/수주 관리 버튼은 PC에서 한 줄 유지
   - 좁은 화면은 버튼을 줄바꿈/축소하지 않고 테이블 가로 스크롤 사용
   ========================================================= */
.erp11226-action-line{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  width:max-content!important;
  min-width:max-content!important;
  white-space:nowrap!important;
}
.erp11226-action-line>.btn{
  flex:0 0 auto!important;
  margin:0!important;
  min-height:34px!important;
  white-space:nowrap!important;
}
.erp11226-quote-table td.erp11226-actions{
  min-width:320px!important;
  width:320px!important;
  white-space:nowrap!important;
}
.erp11226-order-table td.erp11226-actions{
  min-width:350px!important;
  width:350px!important;
  white-space:nowrap!important;
}
.erp11226-table-wrap{
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch;
}
@media(max-width:700px){
  .erp11226-action-line{justify-content:flex-start!important;}
  .erp11226-quote-table td.erp11226-actions{min-width:320px!important;width:320px!important;}
  .erp11226-order-table td.erp11226-actions{min-width:350px!important;width:350px!important;}
}

/* STEP113-2-6-3 시공관리 사진 수정·삭제 복구 */
.site112242-work-table col.c-photo{width:300px}
.site112242-work-table{min-width:1280px!important}
.site112242-photos{
  align-items:flex-start!important;
  align-content:flex-start!important;
}
.site112263-photo-add{flex:0 0 auto!important}
.site112263-photo-item{
  display:inline-flex!important;
  align-items:center!important;
  gap:3px!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  padding:2px!important;
  border:1px solid var(--dr-section-border,#c7d9e8)!important;
  border-radius:6px!important;
  background:var(--dr-surface,#fff)!important;
}
.site112263-photo-item .photo-chip{
  min-height:28px!important;
  padding:3px 6px!important;
  margin:0!important;
  font-size:11px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.site112263-photo-edit{
  color:var(--dr-primary,#3979a7)!important;
  border-color:var(--dr-primary,#3979a7)!important;
}
.site112263-photo-delete{
  color:#b4232f!important;
  border-color:#d8a2a8!important;
  background:#fff7f8!important;
}


/* STEP113-2-7-1 권한/사용자 표시 */
.d32-user-name{font-weight:700;white-space:nowrap}
.d32-role-badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.d32-role-admin{background:#e9eef5;color:#334155;border:1px solid #cbd5e1}
.d32-role-representative{background:#fff4e8;color:#8a5a2b;border:1px solid #ead2b7}
.permission-policy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.permission-policy>div{border:1px solid #dbe4ee;border-radius:10px;padding:12px;background:#fff}
.permission-policy b{display:block;margin-bottom:6px}.permission-policy span{font-size:12px;line-height:1.55;color:#64748b}
.permission-role-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:700}
.dashboard-widget-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dashboard-widget-settings .notice{grid-column:1/-1}
.dashboard-widget-settings label{display:flex;gap:8px;align-items:center;border:1px solid #dbe4ee;border-radius:8px;padding:10px 12px;background:#fff;cursor:pointer}
.dashboard-widget-settings input{width:18px;height:18px}
@media(max-width:700px){.permission-policy{grid-template-columns:1fr}.dashboard-widget-settings{grid-template-columns:1fr}.d32-role-badge{display:none}}

/* STEP113-2-7-1 AS 담당/실제작업자 권한 */
.as112271-worker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;padding:9px;border:1px solid #dbe4ee;border-radius:8px;background:#f8fafc;max-height:150px;overflow:auto}
.as112271-worker-list label{display:flex!important;align-items:center;gap:7px;margin:0!important;padding:5px 6px;border-radius:6px;background:#fff;font-weight:600!important;cursor:pointer}
.as112271-worker-list input{width:16px!important;height:16px!important;min-height:0!important;margin:0!important;padding:0!important}
.as11225-status-select:disabled{opacity:.7;cursor:not-allowed;background:#f1f5f9!important}
@media(max-width:700px){.as112271-worker-list{grid-template-columns:1fr}}

/* STEP113-2-7-2 Top Header 업무 퀵바 */
.topbar.dr-topbar-v2,.topbar{align-items:flex-start}
.topbar>div:first-child{flex:0 0 auto;min-width:180px}
.dr-top-header-hub{flex:1 1 auto;min-width:360px;display:flex;align-items:center;gap:10px;position:relative}
.dr-global-search{position:relative;flex:1 1 300px;max-width:430px}
.dr-global-search input{width:100%;height:38px;border:1px solid var(--dr-border,#d9e0e7);border-radius:9px;background:var(--dr-surface,#fff);color:var(--dr-text,#1f2937);padding:0 12px 0 35px;font-size:13px;outline:none}
.dr-global-search input:focus{border-color:var(--dr-primary,#52758a);box-shadow:0 0 0 3px rgba(82,117,138,.10)}
.dr-search-icon{position:absolute;left:12px;top:8px;z-index:2;font-size:18px!important;color:#7c8794!important}
.dr-global-search-results{position:absolute;left:0;right:0;top:43px;z-index:10020;border:1px solid #d9e0e7;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.15);overflow:hidden;max-height:360px;overflow-y:auto}
.dr-global-search-result{width:100%;display:grid;grid-template-columns:52px 1fr;gap:2px 8px;text-align:left;padding:9px 11px;border:0;border-bottom:1px solid #eef2f6;background:#fff;cursor:pointer;color:#334155}
.dr-global-search-result:hover{background:#f7f9fb}.dr-global-search-result span{grid-row:1/3;font-size:11px!important;color:#6b7785!important;padding-top:3px}.dr-global-search-result strong{font-size:13px}.dr-global-search-result small{font-size:11px;color:#7c8794;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dr-global-search-empty{padding:14px;text-align:center;color:#7c8794;font-size:12px}
.dr-top-summary{display:flex;align-items:center;gap:5px;white-space:nowrap}
.dr-top-summary button{display:flex;align-items:center;gap:5px;height:36px;padding:0 8px;border:1px solid var(--dr-border,#d9e0e7);border-radius:8px;background:var(--dr-surface,#fff);cursor:pointer;color:var(--dr-text-muted,#64748b)}
.dr-top-summary button:hover{background:var(--dr-soft,#f6f8fa)}.dr-top-summary span{font-size:11px!important;color:inherit!important}.dr-top-summary b{min-width:20px;padding:2px 5px;border-radius:999px;background:var(--dr-section-bg,#eef3f6);color:var(--dr-primary,#52758a);font-size:11px;text-align:center}
.dr-top-tools{display:flex;align-items:center;gap:5px}.dr-top-pop-wrap{position:relative}.dr-top-tool-btn,.dr-top-icon-btn{height:36px;border:1px solid var(--dr-border,#d9e0e7);border-radius:8px;background:var(--dr-surface,#fff);color:var(--dr-text,#334155);cursor:pointer;font-size:12px;font-weight:700}.dr-top-tool-btn{padding:0 10px}.dr-top-icon-btn{width:38px;position:relative}.dr-top-alert-count{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#5c6f7e;color:#fff;font-size:9px;font-style:normal;line-height:17px}
.dr-top-pop{position:absolute;right:0;top:42px;z-index:10020;width:170px;padding:7px;border:1px solid #d9e0e7;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.15)}.dr-top-pop>button{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;background:transparent;border-radius:7px;padding:8px 9px;text-align:left;cursor:pointer;font-size:12px;color:#334155}.dr-top-pop>button:hover{background:#f4f6f8}.dr-alert-pop>strong{display:block;padding:5px 9px 7px;font-size:12px;color:#475569}
.topbar-actions{flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.topbar-actions>.btn[onclick*="exportAll"]{display:none}
@media(max-width:1280px){.dr-top-summary button span{display:none}.dr-top-header-hub{min-width:300px}.dr-global-search{max-width:none}}
@media(max-width:1050px){.topbar{flex-wrap:wrap}.dr-top-header-hub{order:3;flex-basis:100%;width:100%}.topbar-actions{margin-left:auto}}
@media(max-width:700px){.dr-top-header-hub{display:grid;grid-template-columns:1fr auto;min-width:0}.dr-global-search{max-width:none}.dr-top-summary{grid-column:1/-1;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.dr-top-summary button span{display:inline}.dr-top-tools{justify-content:flex-end}.dr-top-tool-btn{font-size:0;width:38px;padding:0}.dr-top-tool-btn::after{content:'＋';font-size:18px}.dr-global-search input{font-size:12px}.topbar>div:first-child{min-width:0}.topbar h1{font-size:20px}}


/* =========================================================
   STEP113-2-7-3: 최상단 헤더 재배치 + PC 모바일헤더 잔재 제거
   - PC에서 모바일 전용 헤더가 빈 남색 띠로 노출되던 문제 수정
   - 현재 페이지 제목/날짜/통합검색/업무요약/사용자 영역을 최상단 Sticky Header로 통합
   - 모바일에서는 기존 모바일 헤더 동작 유지
   ========================================================= */
.mobile-header,
.mobile-drawer-backdrop{
  display:none;
}

@media (min-width:901px){
  .main{
    padding-top:0!important;
  }
  .topbar{
    position:relative;
    top:auto;
    z-index:50;
    min-height:64px;
    margin:0 -20px 18px;
    padding:11px 20px;
    align-items:center!important;
    gap:12px;
    background:var(--dr-surface,#fff)!important;
    border-bottom:1px solid var(--dr-border,#d9e0e7);
    box-shadow:0 2px 8px rgba(15,23,42,.045);
  }
  .topbar>div:first-child{
    display:flex;
    align-items:baseline;
    gap:9px;
    flex:0 0 auto;
    min-width:180px;
    white-space:nowrap;
  }
  .topbar h1{
    margin:0!important;
    font-size:25px;
    line-height:1.15;
  }
  .topbar #today{
    font-size:11px!important;
    line-height:1;
    opacity:.78;
    white-space:nowrap;
  }
  .dr-top-header-hub{
    align-items:center;
  }
  .topbar-actions{
    align-items:center;
  }
}

/* STEP113-2-7-4: 상단 헤더 일반 흐름 + 모달 최상위 보정 */
@media (min-width:901px){
  .topbar{position:relative!important;top:auto!important;}
}
#modal.modal:not(.hidden){z-index:100200!important;}
#d32InfoModal{z-index:100250;}

@media (max-width:900px){
  .mobile-header{display:flex!important;}
  .mobile-drawer-backdrop{display:none;}
  .mobile-drawer-backdrop.show{display:block;}
}

/* =========================================================
   STEP113-2-7-4: 대시보드 중복 사용자/날짜 제거 + 업무 바로가기
   ========================================================= */
.office112274-dashboard-guide{display:flex;flex-direction:column;gap:3px;min-width:220px}
.office112274-dashboard-guide b{font-size:14px;color:var(--dr-text,#1f2937)}
.office112274-dashboard-guide span{font-size:12px;color:var(--dr-text-muted,#64748b)}
.office112274-dashboard-shortcuts{gap:7px!important}
@media(max-width:700px){
  .office112274-dashboard-guide{min-width:0;width:100%}
  .office112274-dashboard-shortcuts{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .office112274-dashboard-shortcuts .btn{width:100%!important}
}

/* STEP113-2-7-5 수주목록 컬럼 폭 재배분 · 수주명 표시 제거 */
.erp11226-order-table col.c-order-no{width:130px}
.erp11226-order-table col.c-order-date{width:100px}
.erp11226-order-table col.c-order-customer{width:120px}
.erp11226-order-table col.c-order-site{width:180px}
.erp11226-order-table col.c-order-supply{width:110px}
.erp11226-order-table col.c-order-tax{width:90px}
.erp11226-order-table col.c-order-total{width:110px}
.erp11226-order-table col.c-order-status{width:90px}
.erp11226-order-table col.c-order-actions{width:350px}
.erp11226-order-table th,.erp11226-order-table td{overflow:hidden;text-overflow:ellipsis}
.erp11226-order-table td.erp112275-site{white-space:normal!important;line-height:1.35;word-break:keep-all}


/* =========================================================
   STEP113-2-7-6 수주 관리버튼 잘림 보정
   - 연계현황/미리보기/수정/복사/삭제 5개를 한 줄 유지
   - 삭제 버튼 우측 잘림 방지
   ========================================================= */
.erp11226-order-table{min-width:1320px!important;table-layout:fixed!important}
.erp11226-order-table col.c-order-actions{width:390px!important}
.erp11226-order-table th:last-child,
.erp11226-order-table td.erp11226-actions{width:390px!important;min-width:390px!important;overflow:visible!important;padding-left:5px!important;padding-right:5px!important}
.erp11226-order-table .erp11226-action-line{gap:4px!important;max-width:none!important}
.erp11226-order-table .erp11226-action-line>.btn{padding:5px 6px!important;margin:0!important;flex:0 0 auto!important}
@media(max-width:700px){
  .erp11226-order-table td.erp11226-actions{width:390px!important;min-width:390px!important}
}

/* =========================================================
   STEP113-2-7-7 수주목록 리스트 폭 재정리
   - 목록 카드의 오른쪽 빈 공간 없이 표를 100% 사용
   - 데이터 길이에 맞춘 최소 폭 + 현장명 유동 확장
   - 관리 5버튼 한 줄 유지
   - 빠른등록 로직은 변경하지 않음
   ========================================================= */
.erp11226-order-table{
  width:100%!important;
  min-width:1280px!important;
  table-layout:auto!important;
}
.erp11226-order-table col.c-order-no{width:118px!important}
.erp11226-order-table col.c-order-date{width:96px!important}
.erp11226-order-table col.c-order-customer{width:112px!important}
.erp11226-order-table col.c-order-site{width:auto!important}
.erp11226-order-table col.c-order-supply{width:105px!important}
.erp11226-order-table col.c-order-tax{width:88px!important}
.erp11226-order-table col.c-order-total{width:105px!important}
.erp11226-order-table col.c-order-status{width:90px!important}
.erp11226-order-table col.c-order-actions{width:390px!important}
.erp11226-order-table th:nth-child(1),.erp11226-order-table td:nth-child(1){min-width:118px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(2),.erp11226-order-table td:nth-child(2){min-width:96px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(3),.erp11226-order-table td:nth-child(3){min-width:112px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(4),.erp11226-order-table td:nth-child(4){min-width:160px!important}
.erp11226-order-table th:nth-child(5),.erp11226-order-table td:nth-child(5){min-width:105px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(6),.erp11226-order-table td:nth-child(6){min-width:88px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(7),.erp11226-order-table td:nth-child(7){min-width:105px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(8),.erp11226-order-table td:nth-child(8){min-width:90px!important;white-space:nowrap!important}
.erp11226-order-table th:nth-child(9),.erp11226-order-table td.erp11226-actions{
  width:390px!important;
  min-width:390px!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
.erp11226-order-table .erp11226-action-line{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  justify-content:center!important;
  gap:5px!important;
}
.erp11226-order-table .erp11226-action-line>.btn{
  flex:1 1 0!important;
  width:auto!important;
  min-width:64px!important;
  max-width:76px!important;
  padding:0 5px!important;
}
@media(max-width:700px){
  .erp11226-order-table{min-width:1280px!important}
  .erp11226-order-table th:nth-child(9),.erp11226-order-table td.erp11226-actions{width:390px!important;min-width:390px!important}
}

/* ===== STEP113-2-8 전체 리스트 테이블 구조 통일 ===== */
#content table.erp11328-list-table{
  width:100%!important;
  border-collapse:collapse!important;
  table-layout:fixed!important;
  background:var(--dr-surface,#fff)!important;
}
#content table.erp11328-list-table th,
#content table.erp11328-list-table td{
  box-sizing:border-box!important;
  width:var(--erp-col-width,auto);
  min-width:var(--erp-col-width,auto);
  border-right:1px solid var(--dr-table-divider,#c9d9e7)!important;
  border-bottom:1px solid var(--dr-table-divider,#dbe6ef)!important;
  vertical-align:middle!important;
  overflow-wrap:anywhere;
}
#content table.erp11328-list-table th:first-child,
#content table.erp11328-list-table td:first-child{border-left:1px solid var(--dr-table-divider,#c9d9e7)!important}
#content table.erp11328-list-table thead th{
  text-align:center!important;
  white-space:nowrap!important;
}
#content table.erp11328-list-table td.erp11328-no,
#content table.erp11328-list-table th.erp11328-no{
  width:52px!important;min-width:52px!important;max-width:52px!important;text-align:center!important;font-weight:700!important;
}
#content table.erp11328-list-table td[data-erp-col="주소"],
#content table.erp11328-list-table td[data-erp-col="위치"],
#content table.erp11328-list-table td[data-erp-col="현장명"],
#content table.erp11328-list-table td[data-erp-col="증상"],
#content table.erp11328-list-table td[data-erp-col="내용"],
#content table.erp11328-list-table td[data-erp-col="비고"]{white-space:normal!important;line-height:1.35!important;word-break:keep-all!important}
#content table.erp11328-list-table td[data-erp-col="관리"]{white-space:nowrap!important;text-align:center!important}
#content table.erp11328-list-table .list-pagination-row>td{border-left:0!important;border-right:0!important;border-bottom:0!important;width:auto!important;min-width:0!important}
#content .table-wrap,#content .erp11226-table-wrap,#content .as11225-table-wrap,#content .site11227-table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}

/* 시공목록은 사진 작업 버튼을 위한 폭을 확보하고 나머지는 업무 용도에 맞게 압축 */
.site112242-work-table{min-width:1390px!important}
.site112242-work-table col.c-index{width:52px!important}
.site112242-work-table col.c-no{width:115px!important}
.site112242-work-table col.c-location{width:190px!important}
.site112242-work-table col.c-drawing{width:110px!important}
.site112242-work-table col.c-stage{width:110px!important}
.site112242-work-table col.c-done{width:85px!important}
.site112242-work-table col.c-today{width:85px!important}
.site112242-work-table col.c-photo{width:300px!important}
.site112242-work-table col.c-status{width:105px!important}
.site112242-work-table col.c-memo{width:180px!important}
.site112242-work-table .erp11328-no{text-align:center!important;font-weight:700!important}


/* ===== STEP113-2-8-3 시공목록 사진/공정 테이블 안정화 ===== */
#content .site112242-work-table{
  width:100%!important;
  min-width:1420px!important;
  table-layout:fixed!important;
}
#content .site112242-work-table col.c-index{width:52px!important}
#content .site112242-work-table col.c-no{width:115px!important}
#content .site112242-work-table col.c-location{width:190px!important}
#content .site112242-work-table col.c-drawing{width:110px!important}
#content .site112242-work-table col.c-stage{width:110px!important}
#content .site112242-work-table col.c-done{width:85px!important}
#content .site112242-work-table col.c-today{width:85px!important}
#content .site112242-work-table col.c-photo{width:340px!important}
#content .site112242-work-table col.c-status{width:105px!important}
#content .site112242-work-table col.c-memo{width:180px!important}
#content .site112242-work-table td.site112242-stage{
  display:table-cell!important;
  text-align:left!important;
  white-space:nowrap!important;
}
#content .site112242-work-table .site112242-stage-inner{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-width:0!important;
}
#content .site112242-work-table .site112242-photos{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:4px!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding-bottom:2px!important;
}
#content .site112242-work-table .site112242-photos>*{flex:0 0 auto!important}
#content .site112242-work-table .site112263-photo-item{
  display:inline-flex!important;
  align-items:center!important;
  gap:3px!important;
  flex:0 0 auto!important;
}


/* ===== STEP113-2-8-5 AS 전/중/후 복수사진 ===== */
.as113285-photo-grid{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  width:100%;
}
.as113285-photo-phase{
  min-width:0;
  border:1px solid var(--dr-component-border);
  border-radius:8px;
  background:#fff;
  padding:10px;
}
.as113285-photo-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  padding-bottom:7px;
  border-bottom:1px solid #e6edf3;
}
.as113285-photo-head span{font-size:12px;color:#64748b}
.as113285-photo-list{display:grid;gap:6px;margin-bottom:8px}
.as113285-photo-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px;
  border:1px solid #e3eaf0;
  border-radius:7px;
  background:#f8fafc;
}
.as113285-photo-item>div:first-child{min-width:0}
.as113285-photo-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.as113285-photo-item small{display:block;margin-top:2px;color:#64748b;font-size:11px}
.as113285-photo-actions{display:flex;gap:4px;flex:0 0 auto}
.as113285-photo-actions .btn{padding:5px 7px;font-size:11px}
.as113285-photo-empty{display:block;padding:10px 4px;color:#7b8794;font-size:12px}
.as113285-photo-add{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  border:1px dashed #9db4c7;
  border-radius:7px;
  background:#f7fafc;
  cursor:pointer;
  font-weight:700;
  font-size:12px;
}
.as113285-photo-add input{display:none!important}
.as113285-gallery-section{padding:10px 0;border-bottom:1px solid #e5e7eb}
.as113285-gallery-section h3{margin:0 0 8px}
.as113285-gallery-section h3 small{font-weight:400;color:#64748b}
@media(max-width:980px){.as113285-photo-grid{grid-template-columns:1fr}}


/* ===== STEP113-2-8-5-1 AS 사진 저장 전 즉시 미리보기 ===== */
.as1132851-pending-list{display:grid;gap:7px;margin:8px 0}
.as1132851-pending-list[hidden]{display:none!important}
.as1132851-pending-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px;border:1px solid #b8c9d8;border-radius:8px;background:#eef6fb}
.as1132851-pending-item img{width:64px;height:54px;object-fit:cover;border-radius:6px;background:#dbe5ec}
.as1132851-pending-meta{min-width:0}
.as1132851-pending-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.as1132851-pending-meta small{display:block;margin-top:3px;color:#3979a7;font-weight:700;font-size:11px}
.as1132851-pending-remove{padding:5px 8px!important;font-size:11px!important}
@media(max-width:560px){.as1132851-pending-item{grid-template-columns:54px minmax(0,1fr) auto}.as1132851-pending-item img{width:54px;height:48px}}


/* =========================================================
 STEP113-3-2-25-1 중앙 회사정보 / 인감
 ========================================================= */
.admin-company-settings,.admin-connection-settings{
  border:1px solid #d8e1ea;border-radius:10px;padding:16px;margin:0 0 16px;background:#fff;
}
.admin-setting-title{font-size:15px;font-weight:800;color:#163f66;margin:0 0 10px}
.admin-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-company-full{grid-column:1/-1}
.company-stamp-preview{margin-top:10px;display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #d7e1eb;border-radius:8px;background:#f8fbfd}
.company-stamp-preview img{display:block;width:72px;height:72px;object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:6px}
.company-stamp-preview span,.company-stamp-empty{font-size:12px;color:#52677a}
.company-stamp-empty{margin-top:9px;padding:9px;background:#f8fafc;border-radius:6px}
.admin-company-actions{margin-top:12px}
.quote-company-reference{display:grid;gap:7px;padding:12px 14px;border:1px solid #d8e1ea;border-radius:8px;background:#f7fafc;color:#334155}
.quote-company-reference>div{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.quote-company-reference b{font-size:14px;color:#163f66}
.quote-company-reference span{font-size:12px}
.quote-company-reference small{color:#64748b}
@media(max-width:760px){
  .admin-company-grid{grid-template-columns:1fr}
  .admin-company-full{grid-column:auto}
}


/* STEP113-3-2-25-2 견적관리 중앙 회사정보 참조 */
.quote-company-central-ref{
  margin-top:10px;padding:11px 13px;border:1px solid #d8e1ea;border-radius:8px;
  background:#f7fafc;color:#334155;display:grid;gap:6px;
}
.quote-company-central-ref>div{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.quote-company-central-ref b{color:#163f66;font-size:13px}
.quote-company-central-ref span{font-size:12px}
.quote-company-central-ref small{font-size:11px;color:#64748b}

/* STEP113-4 중앙 버전 표시 */
.erp-version-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 11px;margin:0 0 12px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}
.erp-version-summary b{font-size:12px;color:#163f66}.erp-version-summary span{font-size:12px;font-weight:800;color:#0f4f7a}.erp-version-summary small{font-size:11px;color:#64748b}

/* STEP113-4-1 데이터 무결성 상태 */
.erp-integrity-summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 12px;margin:0 0 14px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd;
}
.erp-integrity-summary span{font-size:12px;color:#425466}
.erp-integrity-summary.has-error{border-color:#e5b9b9;background:#fff6f6}
.erp-integrity-summary.has-error span{color:#9c2e2e;font-weight:700}


/* STEP113-4-2 전체 백업 · 복원 */
.admin-backup-section{
  border:1px solid #d8e1ea;border-radius:10px;padding:16px;margin:0 0 16px;background:#fff;
}
.admin-backup-status{
  display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px;
}
.admin-backup-status span{
  padding:6px 9px;border:1px solid #dce6ee;border-radius:999px;background:#f8fbfd;
  font-size:11px;color:#425466;
}
.admin-backup-warning{
  display:block;margin-top:10px;padding:9px 10px;border-radius:7px;background:#fff8e8;
  color:#765b1d;font-size:11px;line-height:1.55;
}

/* STEP113-4-3 시스템 감사로그 */
.audit-filter{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) minmax(130px,1fr) minmax(130px,1fr);gap:8px;margin:12px 0}
.audit-filter input,.audit-filter select{min-width:0}
.audit-count{font-size:11px;color:#64748b;margin:6px 0 9px}
.audit-table-wrap{max-height:62vh;overflow:auto}
.audit-table-wrap thead th{position:sticky;top:0;z-index:2;background:var(--dr-table-head-bg,#eef3f7)}
.audit-sub{display:block;margin-top:2px;font-size:10px;color:#7b8791}
.audit-action{font-weight:700;white-space:nowrap}
.audit-result{display:inline-block;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800;background:#e8f2ea;color:#317143}
.audit-result.fail{background:#fde9e9;color:#a33b3b}.audit-result.warning{background:#fff3d7;color:#8a651c}
@media(max-width:900px){.audit-filter{grid-template-columns:1fr 1fr}.audit-table-wrap{max-height:none}}


/* STEP113-4-4 NAS 이식 준비상태 */
.nas-readiness-box{margin:10px 0 12px}
.nas-ready-result{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}
.nas-ready-result b{font-size:12px}
.nas-ready-result>span{font-size:11px;color:#64748b}
.nas-ready-result>div{flex-basis:100%;display:grid;gap:3px;margin-top:3px}
.nas-ready-result>div strong{font-size:11px}
.nas-ready-result>div small{font-size:10px;color:#667582}
.nas-ready-result.ok{border-color:#bddfc8;background:#f4fbf6}
.nas-ready-result.warn{border-color:#ead39b;background:#fffaf0}
.nas-ready-result.fail{border-color:#e6b3b3;background:#fff6f6}
\n/* STEP114-1 NAS 중앙 API 연결상태 */
.nas-api-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}
.nas-api-status span{font-size:11px;font-weight:800}.nas-api-status small{font-size:10px;color:#64748b}
.nas-api-status.checking{border-color:#cbd5e1;background:#f8fafc}.nas-api-status.ok{border-color:#b9ddc4;background:#f3fbf5}.nas-api-status.ok span{color:#2e6d42}
.nas-api-status.warn{border-color:#ead39b;background:#fffaf0}.nas-api-status.warn span{color:#87641c}.nas-api-status.fail{border-color:#e4b2b2;background:#fff6f6}.nas-api-status.fail span{color:#a03a3a}

/* STEP114-3 NAS 업무데이터 중앙저장 */
.nas-data-mode-status{margin:10px 0 12px}.nas-data-mode-card{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}.nas-data-mode-card b{font-size:12px}.nas-data-mode-card span,.nas-data-mode-card small{font-size:10px;color:#64748b}.nas-data-mode-card.ok{border-color:#b9ddc4;background:#f3fbf5}.nas-data-mode-card.ok b{color:#2e6d42}.nas-data-mode-card.warn{border-color:#ead39b;background:#fffaf0}.nas-sync-guard{position:fixed;inset:0;z-index:200000;background:rgba(9,17,28,.72);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.nas-sync-guard-card{width:min(430px,92vw);background:#fff;border-radius:14px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.28);display:grid;gap:9px;text-align:center}.nas-sync-guard-card b{font-size:16px}.nas-sync-guard-card span{font-size:12px;color:#586677;line-height:1.55}.nas-sync-guard-card button{justify-self:center;border:0;border-radius:8px;padding:8px 14px;cursor:pointer}.nas-sync-guard.error .nas-sync-guard-card{border:1px solid #e1b3b3}

/* STEP114-4 NAS 파일저장소 */
.nas-file-status{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:10px 0;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}
.nas-file-status b{font-size:11px}.nas-file-status span,.nas-file-status small{font-size:10px;color:#64748b}
.nas-file-status.ok{border-color:#badfc5;background:#f3fbf5}.nas-file-status.ok b{color:#2e6d42}
.nas-file-status.fail{border-color:#e4b2b2;background:#fff6f6}.nas-file-status.fail b{color:#a03a3a}

/* STEP114-5 ERP -> 대륭챗 PUSH */
.chat-integration-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}.chat-integration-status b{font-size:11px}.chat-integration-status span,.chat-integration-status small{font-size:10px;color:#64748b}.chat-integration-status.ok{border-color:#badfc5;background:#f3fbf5}.chat-integration-status.ok b{color:#2e6d42}.chat-integration-status.warn{border-color:#ead39b;background:#fffaf0}.chat-integration-status.warn b{color:#87641c}.chat-integration-status.fail{border-color:#e4b2b2;background:#fff6f6}.chat-integration-status.fail b{color:#a03a3a}.chat-outbox-status{margin-top:10px}.notify-summary{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.notify-summary span{padding:5px 8px;border:1px solid #d8e1ea;border-radius:999px;background:#fff;font-size:10px}.notification-table td{vertical-align:middle}.notify-status{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;background:#eef2f7}.notify-sent{background:#eaf7ee;color:#2e6d42}.notify-failed{background:#fff0f0;color:#9f3434}.notify-retry,.notify-waiting_config{background:#fff7e8;color:#8a641c}.notify-pending,.notify-sending{background:#edf6ff;color:#35648f}
\n/* STEP114-6 NAS 유지보수 */
.nas-maintenance-status{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:10px 0;border:1px solid #d8e1ea;border-radius:8px;background:#f8fbfd}
.nas-maintenance-status b{font-size:11px}.nas-maintenance-status span,.nas-maintenance-status small{font-size:10px;color:#64748b}.nas-maintenance-status.ok{border-color:#badfc5;background:#f3fbf5}.nas-maintenance-status.warn{border-color:#ead59c;background:#fffaf0}.nas-maintenance-status.fail{border-color:#e4b2b2;background:#fff6f6}.nas-maintenance-status.checking{opacity:.8}
.nas-maintenance-history{display:grid;gap:5px;margin-top:8px}.nas-maintenance-history>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 8px;border:1px solid #edf1f5;border-radius:6px;background:#fff;font-size:10px}.nas-maintenance-history b{min-width:95px}.nas-maintenance-history span{color:#475569}.nas-maintenance-history small{color:#7c8a99}

/* =========================================================
   DAERYUNG ERP v1.0.6 MOBILE HOTFIX
   - 모바일 헤더 중앙 제목 대비 개선
   - 사이드 메뉴를 고정 헤더 아래에서 시작
   ========================================================= */
@media (max-width:900px){
  .mobile-header-title{
    color:#fff !important;
    text-shadow:0 1px 2px rgba(0,0,0,.30) !important;
  }

  .sidebar{
    top:58px !important;
    bottom:0 !important;
    max-height:calc(100dvh - 58px) !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}
