/* /Components/Layout/ConfirmDialog.razor.rz.scp.css */
/* 확인 메시지박스. 패널 헤더(#38424F)·CRUD 버튼 색을 그대로 써서 화면과 결이 맞게 한다. */
.mbox-backdrop[b-4uyc503twm] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(16, 24, 32, .45);
    display: flex; align-items: center; justify-content: center;
    outline: none;
}

.mbox[b-4uyc503twm] {
    width: 420px; max-width: calc(100vw - 32px);
    background: #fff; border: 1px solid #6E7A86;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
    color: #000; font-size: 15px;
}

.mbox-head[b-4uyc503twm] {
    height: 42px; padding: 0 14px;
    background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; font-size: 17px; font-weight: 700;
}

.mbox-body[b-4uyc503twm] {
    padding: 22px 18px 18px;
    line-height: 1.6; white-space: pre-line; word-break: keep-all;
}

.mbox-foot[b-4uyc503twm] {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 0 14px 14px;
}

.mbox-btn[b-4uyc503twm] {
    min-width: 96px; height: 38px; border: 0; color: #fff;
    font-size: 15px; font-weight: 700; cursor: pointer;
}
.mbox-btn.yes[b-4uyc503twm] { background: var(--mes-edit); }
.mbox-btn.no[b-4uyc503twm]  { background: #7A8590; }
.mbox-btn:hover[b-4uyc503twm] { filter: brightness(1.08); }
.mbox-btn:focus-visible[b-4uyc503twm] { outline: 3px solid #26A69A; outline-offset: 2px; }

/* 알림(삭제 불가 등)은 제목 띠를 붉게 해 확인 상자와 구분한다. */
.mbox-head.alert[b-4uyc503twm] { background: var(--mes-delete); }
/* /Components/Layout/MesHeader.razor.rz.scp.css */
/* html/00_전체화면목록.html 의 .header 이식. */
.header[b-f5b2lnh8l6] {
    position: relative;
    height: 92px;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 0 34px;
    background: var(--mes-navy);
    color: #fff;
    border-bottom: 4px solid var(--mes-accent);
}
.brand[b-f5b2lnh8l6] { min-width: 230px; }
.brand b[b-f5b2lnh8l6] { display: block; color: var(--mes-accent); font: 700 28px Arial; }
.brand span[b-f5b2lnh8l6] { font-size: 17px; color: #e8edf3; }
.meta[b-f5b2lnh8l6] { margin-left: auto; text-align: right; font-size: 13px; color: #cbd5df; line-height: 1.7; }

.userbar[b-f5b2lnh8l6] {
    position: absolute; right: 24px; bottom: 8px;
    display: flex; align-items: center; gap: 10px;
    font-size: 12.5px; color: #C9D3DB;
}
.userbar b[b-f5b2lnh8l6] { color: #fff; font-weight: 600; }
.userbar .lv[b-f5b2lnh8l6] {
    background: var(--mes-grid-head); color: #fff;
    padding: 2px 8px; border-radius: 2px; font-size: 11.5px;
}
.userbar button[b-f5b2lnh8l6] {
    background: none; border: 1px solid rgba(255,255,255,.25); color: #E8EDF3;
    font-family: inherit; font-size: 11.5px; padding: 3px 10px;
    border-radius: 2px; cursor: pointer;
}
.userbar button:hover[b-f5b2lnh8l6] { background: rgba(255,255,255,.1); }

@media (max-width: 720px) {
    .header[b-f5b2lnh8l6] { height: auto; padding: 20px; display: block; }
    .meta[b-f5b2lnh8l6] { margin: 10px 0 0; text-align: left; }
}
/* /Components/Layout/MesLayout.razor.rz.scp.css */
/* html/01_기준정보/01_거래처코드_v7기준.html 의 MainForm 셸 이식. */
/* 셸은 뷰포트에 정확히 맞춘다. 문서 자체는 스크롤하지 않고,
   내용이 넘치는 그리드·폼은 각자의 패널 안에서 스크롤한다.
   업무화면 원본은 1920x1080 기준이라 그보다 작은 창에서는 여백이 줄어든다.

   1280x800 은 바닥값이다. 그 아래로는 버튼·카드가 잘리기 시작하므로
   레이아웃을 뭉개는 대신 문서를 스크롤시킨다. (1920x1080 모니터에서는 걸리지 않는다) */
.app-shell[b-vfbr0ysxnp] {
    width: 100%; min-width: 1280px;
    height: 100vh; min-height: 800px;
    display: flex; overflow: hidden;
    background: var(--mes-page); color: #000;
}

/* ===== 사이드바 : MainForm.panelMainLeft 225px ===== */
.sidebar[b-vfbr0ysxnp] {
    width: 225px; flex: 0 0 225px; height: 100%;
    background: var(--mes-navy); color: #fff;
    display: flex; flex-direction: column; overflow: hidden;
}
.app-shell.collapsed .sidebar[b-vfbr0ysxnp] { display: none; }

.brand-link[b-vfbr0ysxnp] { display: block; text-decoration: none; color: inherit; }
.brand[b-vfbr0ysxnp] {
    height: 170px; flex: 0 0 170px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    border-bottom: 2px solid rgba(255,255,255,.035);
}
.brand-title[b-vfbr0ysxnp] {
    color: var(--mes-accent); font: 700 28px/1 Calibri, Arial, sans-serif;
    letter-spacing: .6px; white-space: nowrap;
}
.brand-site[b-vfbr0ysxnp] { color: #E8EDF3; font-size: 18px; line-height: 1; white-space: nowrap; }

.nav[b-vfbr0ysxnp] { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }

.nav-main[b-vfbr0ysxnp] {
    height: 50px; display: flex; align-items: center; gap: 10px; padding: 0 10px;
    background: var(--mes-navy); color: var(--mes-menu-text);
    font-size: 16px; font-weight: 700; cursor: pointer; user-select: none;
}
.nav-main.active[b-vfbr0ysxnp] { background: var(--mes-menu-active); color: #fff; }
.nav-main:hover[b-vfbr0ysxnp] { color: #fff; }
.nav-main:focus-visible[b-vfbr0ysxnp] { outline: 2px solid #1ABC9C; outline-offset: -2px; }
.nav-dot[b-vfbr0ysxnp] { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; background: #1ABC9C; }
.nav-caret[b-vfbr0ysxnp] { margin-left: auto; font-size: 11px; opacity: .55; transition: transform .12s ease; }
.nav-main.open .nav-caret[b-vfbr0ysxnp] { transform: rotate(90deg); opacity: .9; }

.nav-group[b-vfbr0ysxnp] { display: none; }
.nav-group.open[b-vfbr0ysxnp] { display: block; }

.nav-sub[b-vfbr0ysxnp] {
    height: 40px; display: flex; align-items: center; padding: 0 10px 0 50px;
    background: var(--mes-submenu); color: #fff;
    font-size: 14.67px; text-decoration: none; user-select: none;
    border-top: 3px solid var(--mes-navy); border-bottom: 3px solid var(--mes-navy);
}
.nav-sub.active[b-vfbr0ysxnp] { background: var(--mes-submenu-active); color: var(--mes-teal); }
.nav-sub:focus-visible[b-vfbr0ysxnp] { outline: 2px solid #1ABC9C; outline-offset: -2px; }

.pager[b-vfbr0ysxnp] {
    flex: 0 0 34px; height: 34px; display: flex; align-items: stretch;
    border-top: 1px solid rgba(255,255,255,.06); background: rgba(0,0,0,.18);
}
.pager a[b-vfbr0ysxnp], .pager span[b-vfbr0ysxnp] {
    flex: 1 1 0; display: flex; align-items: center; justify-content: center; gap: 5px;
    font-size: 11.5px; color: #9FB0C2; text-decoration: none;
}
.pager a:hover[b-vfbr0ysxnp] { color: #fff; background: rgba(255,255,255,.06); }
.pager span[b-vfbr0ysxnp] { opacity: .3; }
.pager a + a[b-vfbr0ysxnp], .pager a + span[b-vfbr0ysxnp], .pager span + a[b-vfbr0ysxnp] { border-left: 1px solid rgba(255,255,255,.06); }

.sidebar-footer[b-vfbr0ysxnp] {
    height: 70px; flex: 0 0 70px;
    border-top: 1px solid rgba(255,255,255,.03);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
}
.footer-line[b-vfbr0ysxnp] {
    width: 70px; height: 1px;
    background: linear-gradient(90deg, rgba(255,255,255,0), #AAB6BB, rgba(255,255,255,0));
}
.footer-runsys[b-vfbr0ysxnp] {
    font: 800 22px/1 Arial, Helvetica, sans-serif; letter-spacing: -.5px;
    background: linear-gradient(180deg,#FFFFFF 0%,#E9EEF0 18%,#C2CCD0 42%,#9AA6AC 60%,#DFE6E8 78%,#AAB6BB 100%);
    background-clip: text; -webkit-background-clip: text; color: transparent;
}

/* ===== 본문 : 상단바 48px + page-body ===== */
.main[b-vfbr0ysxnp] { flex: 1 1 auto; min-width: 0; height: 100%; overflow: hidden; background: var(--mes-page); }

.topbar[b-vfbr0ysxnp] {
    height: 48px; width: 100%; background: var(--mes-navy); color: #fff;
    display: flex; align-items: center; overflow: hidden;
}
.hamburger[b-vfbr0ysxnp] {
    width: 52px; height: 48px; flex: 0 0 52px; border: 0; background: transparent; padding: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    cursor: pointer;
}
.hamburger span[b-vfbr0ysxnp] { display: block; width: 22px; height: 3px; background: #fff; }

.route-title[b-vfbr0ysxnp] {
    height: 48px; flex: 1 1 auto; min-width: 0;
    display: flex; align-items: center; padding: 0 8px;
    font-size: 18.67px; font-weight: 700; white-space: nowrap;
}

.user-panel[b-vfbr0ysxnp] { height: 48px; flex: 0 0 auto; display: flex; align-items: center; }
.session[b-vfbr0ysxnp] {
    height: 34px; display: flex; align-items: center; justify-content: flex-end;
    padding-right: 6px; font-size: 15px; font-weight: 700; white-space: nowrap;
}
.user-badge[b-vfbr0ysxnp] {
    height: 34px; margin: 0 3px; padding: 0 10px;
    background: transparent; border: 1px solid #646464; color: #fff;
    font-size: 15px; font-weight: 700; white-space: nowrap;
}
.logout[b-vfbr0ysxnp] {
    width: 84px; height: 34px; margin-right: 6px; padding: 0;
    background: transparent; border: 1px solid var(--mes-logout); color: var(--mes-logout);
    font-size: 13.33px; cursor: pointer;
}

/* 뷰포트가 아니라 셸 높이를 기준으로 잡는다. */
.page-body[b-vfbr0ysxnp] { width: 100%; height: calc(100% - 48px); padding: 2px; background: var(--mes-page); overflow: hidden; }

/* 로그아웃은 폼 POST 라 form 이 감싸지만, 레이아웃 상자를 만들지 않게 해서
   .logout 이 .user-panel 의 flex 항목으로 그대로 남게 한다. */
.logout-form[b-vfbr0ysxnp] { display: contents; }
/* /Components/Pages/CaseErectorDefectHistory.razor.rz.scp.css */
/* 05-05 제함기 불량이력관리 고유 값. 공통 골격은 wwwroot/quality-screen.css 참조. */
.rows-3[b-hwv934ouqq] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-num[b-hwv934ouqq] { width: 105px; } .c-small[b-hwv934ouqq] { width: 90px; }

.d-date[b-hwv934ouqq] { width: 105px; } .d-eq[b-hwv934ouqq] { width: 105px; } .d-box[b-hwv934ouqq] { width: 125px; }
.d-order[b-hwv934ouqq] { width: 125px; } .d-partner[b-hwv934ouqq] { width: 105px; } .d-name[b-hwv934ouqq] { width: 105px; }
.d-small[b-hwv934ouqq] { width: 95px; }
/* /Components/Pages/DefectByProcess.razor.rz.scp.css */
/* 05-01 공정별 불량현황 고유 값. 공통 골격은 wwwroot/quality-screen.css 참조. */
.rows-2[b-4awv1tqvhh] { grid-template-rows: 106px minmax(0, 1fr); }

.c-rate[b-4awv1tqvhh] { width: 105px; } .c-qty[b-4awv1tqvhh] { width: 110px; }

.d-date[b-4awv1tqvhh] { width: 110px; } .d-order[b-4awv1tqvhh] { width: 135px; } .d-partner[b-4awv1tqvhh] { width: 115px; }
.d-item[b-4awv1tqvhh] { width: 130px; } .d-code[b-4awv1tqvhh] { width: 95px; } .d-name[b-4awv1tqvhh] { width: 135px; }
.d-qty[b-4awv1tqvhh] { width: 95px; } .d-sev[b-4awv1tqvhh] { width: 85px; }
/* /Components/Pages/DefectCode.razor.rz.scp.css */
/* 01-04 불량코드 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.q1l[b-2dsbgo9056] { left: 30px; }
.q1[b-2dsbgo9056] { left: 107px; width: 180px; }

.data-table[b-2dsbgo9056] { min-width: 1340px; width: 1340px; }

.c-code[b-2dsbgo9056] { width: 90px; } .c-name[b-2dsbgo9056] { width: 110px; } .c-desc[b-2dsbgo9056] { width: 170px; }
.c-order[b-2dsbgo9056] { width: 80px; } .c-all[b-2dsbgo9056] { width: 125px; } .c-proc[b-2dsbgo9056] { width: 110px; }
.c-use[b-2dsbgo9056] { width: 90px; } .c-createusr[b-2dsbgo9056] { width: 80px; } .c-created[b-2dsbgo9056] { width: 150px; }
.c-updateusr[b-2dsbgo9056] { width: 100px; } .c-updated[b-2dsbgo9056] { width: 150px; }

/* 상세 폼 : 좌표는 42px 헤더 기준 */
.l-code[b-2dsbgo9056] { top: 14px; } .f-code[b-2dsbgo9056] { top: 14px; }
.l-name[b-2dsbgo9056] { top: 56px; } .f-name[b-2dsbgo9056] { top: 56px; }
.l-desc[b-2dsbgo9056] { top: 98px; } .f-desc[b-2dsbgo9056] { top: 98px; }
.l-order[b-2dsbgo9056] { top: 140px; } .f-order[b-2dsbgo9056] { top: 140px; }
.l-proc[b-2dsbgo9056] { top: 188px; }
.proc-radios[b-2dsbgo9056] { position: absolute; left: 116px; top: 184px; font-size: 14.67px; line-height: 32px; }
.proc-radios input[b-2dsbgo9056] { accent-color: #0B78D0; }
.proc-select[b-2dsbgo9056] { position: absolute; left: 116px; top: 225px; width: 261px; height: 27px; border: 1px solid #b7b7b7; font-size: 14.67px; }
.l-use[b-2dsbgo9056] { top: 274px; } .f-use[b-2dsbgo9056] { left: 110px; top: 274px; gap: 17px; }
.f-error[b-2dsbgo9056] { top: 312px; }
/* /Components/Pages/DefectInfo.razor.rz.scp.css */
/* 03-04 불량정보관리. html/03_생산관리/04_불량정보관리_v7스타일.html 이식. 좌 38.5% / 우 61.5%. */
.defect-page[b-gfaqc2pcji] { position: relative; width: 100%; height: 100%; overflow: hidden; }

.panel-head[b-gfaqc2pcji] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-gfaqc2pcji] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-gfaqc2pcji] { width: 20px; height: 20px; }
.selected-order[b-gfaqc2pcji] { margin-left: auto; margin-right: 12px; color: #00AEEF; font-size: 15px; font-weight: 700; }

.search-section[b-gfaqc2pcji] { position: absolute; left: 0; right: 0; top: 0; height: 106px; background: #fff; overflow: hidden; }
.search-fields[b-gfaqc2pcji] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px; background: #fff;
    display: flex; align-items: center; gap: 20px; padding: 0 154px 0 20px;
}
.search-group[b-gfaqc2pcji] { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.search-group label[b-gfaqc2pcji] { font-size: 15.5px; }
.search-input[b-gfaqc2pcji] {
    height: 31px; padding: 2px 7px; background: #fff; outline: none; font-size: 15px;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.search-input.date[b-gfaqc2pcji] { width: 145px; }
.search-input.normal[b-gfaqc2pcji] { width: 180px; }
.search-btn[b-gfaqc2pcji] {
    position: absolute; right: 7px; top: 7px; width: 140px; height: 49px;
    border: 0; background: var(--mes-new); color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 13px;
    font-size: 16px; font-weight: 700; cursor: pointer;
}
.search-btn svg[b-gfaqc2pcji] { width: 24px; height: 24px; }

.content[b-gfaqc2pcji] {
    position: absolute; left: 0; right: 0; top: 112px; bottom: 0;
    display: grid; grid-template-columns: 38.5% 61.5%; gap: 3px; min-height: 0;
}
.panel[b-gfaqc2pcji] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.left-panel[b-gfaqc2pcji] { min-width: 0; }

.table-wrap[b-gfaqc2pcji] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; }
.data-table[b-gfaqc2pcji] { border-collapse: collapse; table-layout: fixed; width: 100%; background: #fff; font-size: 13.33px; }
.data-table th[b-gfaqc2pcji] {
    position: sticky; top: 0; z-index: 2; height: 38px; padding: 0 8px;
    background: var(--mes-grid-head); color: #fff; font-weight: 700; text-align: left;
    white-space: nowrap; border-bottom: 1px solid var(--mes-grid-line);
}
.data-table td[b-gfaqc2pcji] {
    height: 32px; padding: 3px 8px; background: #fff; color: #000;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    border-bottom: 1px solid var(--mes-grid-line);
}
.data-table tbody tr[b-gfaqc2pcji] { cursor: pointer; }
.data-table tbody tr:hover td[b-gfaqc2pcji] { background: #E8F4F2; }
.data-table tbody tr.selected td[b-gfaqc2pcji], .data-table tbody tr.selected:hover td[b-gfaqc2pcji] { background: var(--mes-grid-selected); }
.data-table .empty[b-gfaqc2pcji] { text-align: center; color: #777; padding: 26px; cursor: default; }
.center[b-gfaqc2pcji] { text-align: center; }
.num[b-gfaqc2pcji] { text-align: right; }
.red-num[b-gfaqc2pcji] { color: #C82929; font-weight: 700; }

.c-no[b-gfaqc2pcji] { width: 148px; } .c-partner[b-gfaqc2pcji] { width: 120px; } .c-item[b-gfaqc2pcji] { width: 130px; }
.c-qty[b-gfaqc2pcji] { width: 105px; } .c-def[b-gfaqc2pcji] { width: 105px; } .c-ordered[b-gfaqc2pcji] { width: 112px; } .c-due[b-gfaqc2pcji] { width: 112px; }

/* ===== 우측 ===== */
.right-stack[b-gfaqc2pcji] { display: flex; flex-direction: column; gap: 3px; min-width: 0; min-height: 0; }
.reg-panel[b-gfaqc2pcji] { flex: 0 0 280px; }
.defect-list-panel[b-gfaqc2pcji] { flex: 1 1 auto; min-height: 190px; }

.reg-body[b-gfaqc2pcji] { position: absolute; left: 14px; right: 14px; top: 54px; bottom: 12px; }
.reg-grid[b-gfaqc2pcji] {
    display: grid; grid-template-columns: 105px minmax(160px,1fr) 95px minmax(180px,1.2fr);
    column-gap: 10px; row-gap: 12px; align-items: center;
}
.reg-label[b-gfaqc2pcji] { text-align: right; font-size: 14px; white-space: nowrap; }
.required[b-gfaqc2pcji]::after { content: " *"; color: #E24C4C; }
.input[b-gfaqc2pcji] {
    height: 31px; padding: 3px 7px; background: #fff; font-size: 14px; outline: none;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.input.read[b-gfaqc2pcji] { background: #E7E7E7; border: 1px solid #C6C6C6; box-shadow: none; }
.qty-block[b-gfaqc2pcji] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.qty-input-wrap[b-gfaqc2pcji] { display: grid; grid-template-columns: minmax(80px,1fr) 48px; gap: 5px; }
.qty-guide[b-gfaqc2pcji] { font-size: 11.5px; color: #777; line-height: 15px; white-space: nowrap; }
.unit-box[b-gfaqc2pcji] { height: 31px; background: #E7E7E7; border: 1px solid #C6C6C6; display: flex; align-items: center; justify-content: center; font-size: 13px; color: #555; }
.note-label[b-gfaqc2pcji] { grid-column: 1; grid-row: 2; }
.note-input[b-gfaqc2pcji] { grid-column: 2 / 5; grid-row: 2; width: 100%; }

.reg-message[b-gfaqc2pcji] { margin-top: 14px; font-size: 13px; color: #1B6B5C; }
.reg-message.error[b-gfaqc2pcji] { color: #BD3737; }

.button-row[b-gfaqc2pcji] { position: absolute; right: 0; bottom: 0; display: flex; gap: 6px; }
.crud[b-gfaqc2pcji] { height: 39px; border: 0; color: #fff; font-size: 14px; font-weight: 700; padding: 0 17px; cursor: pointer; }
.crud:disabled[b-gfaqc2pcji] { opacity: .42; cursor: not-allowed; }
.new[b-gfaqc2pcji] { background: var(--mes-new); }
.add[b-gfaqc2pcji] { background: var(--mes-add); }
.edit[b-gfaqc2pcji] { background: var(--mes-edit); }
.delete[b-gfaqc2pcji] { background: var(--mes-delete); }

.defect-list-panel .table-wrap[b-gfaqc2pcji] { bottom: 34px; }
.defect-table[b-gfaqc2pcji] { font-size: 13px; }
.defect-table th[b-gfaqc2pcji] { height: 36px; }
.defect-table td[b-gfaqc2pcji] { height: 31px; }
.d-name[b-gfaqc2pcji] { width: 130px; } .d-proc[b-gfaqc2pcji] { width: 100px; } .d-qty[b-gfaqc2pcji] { width: 95px; }
.d-oper[b-gfaqc2pcji] { width: 96px; }
.d-date[b-gfaqc2pcji] { width: 115px; } .d-user[b-gfaqc2pcji] { width: 90px; }

/* 지금 등록창에 열려 있는 공정의 행 — 다른 공정의 불량과 구분한다. */
.defect-table .cur-oper[b-gfaqc2pcji] { font-weight: 700; color: #1B5E20; }

.list-footer[b-gfaqc2pcji] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 34px;
    border-top: 1px solid #C8C8C8; background: #FAFAFA;
    display: flex; align-items: center; justify-content: flex-end; padding: 0 14px;
    font-size: 13.5px; font-weight: 700;
}
.list-footer strong[b-gfaqc2pcji] { font-size: 18px; color: #C82929; margin-left: 5px; }
.list-footer .unit[b-gfaqc2pcji] { margin-left: 3px; font-weight: 400; }
/* /Components/Pages/DeliveryResult.razor.rz.scp.css */
/* 04-02 납품결과등록. html/04_납품관리/02_납품결과등록_v7스타일.html 이식. 좌 47% / 우 53%. */
.delivery-screen[b-vy5mbdfcis] { width: 100%; height: 100%; display: grid; grid-template-columns: 47% 53%; gap: 3px; min-height: 0; }

.panel[b-vy5mbdfcis] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-vy5mbdfcis] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.panel-head.sky[b-vy5mbdfcis] { background: #87CEEB; color: #001B2C; }
.panel-head.deep[b-vy5mbdfcis], .panel-head.tax-head[b-vy5mbdfcis] { background: #0B3C6B; }
.head-icon[b-vy5mbdfcis] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-vy5mbdfcis] { width: 20px; height: 20px; }

/* ===== 좌 : 납품 일정 ===== */
.schedule[b-vy5mbdfcis] { min-height: 0; }
.weekbar[b-vy5mbdfcis] {
    position: absolute; left: 0; right: 0; top: 42px; height: 62px;
    display: grid; grid-template-columns: 46px 112px 46px 1fr 90px; align-items: center; gap: 6px;
    padding: 6px; background: #fff; border-bottom: 1px solid #A9A9A9;
}
.arrow[b-vy5mbdfcis] { height: 36px; border: 1px solid #66798D; background: #B8CCE3; font-size: 16px; font-weight: 700; cursor: pointer; }
.week-label[b-vy5mbdfcis] { height: 36px; border: 1px solid #66798D; background: #DCE8F5; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.week-range[b-vy5mbdfcis] { font-size: 21px; font-weight: 700; text-align: center; letter-spacing: .3px; }
.today-btn[b-vy5mbdfcis] { height: 36px; border: 1px solid #7F8C8D; background: #F4F4F4; font-size: 14px; cursor: pointer; }

.schedule-table-wrap[b-vy5mbdfcis] { position: absolute; left: 0; right: 0; top: 104px; bottom: 0; overflow: auto; }
.tbl[b-vy5mbdfcis] { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 670px; font-size: 15px; }
.tbl th[b-vy5mbdfcis] {
    position: sticky; top: 0; z-index: 2; height: 42px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; border-right: 1px solid #527087; border-bottom: 1px solid #D4D4D4;
    padding: 0 5px; white-space: nowrap; text-align: left;
}
.tbl td[b-vy5mbdfcis] {
    height: 42px; padding: 3px 5px; border-right: 1px solid #C8C8C8; border-bottom: 1px solid #D5D5D5;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr[b-vy5mbdfcis] { cursor: pointer; }
.tbl tbody tr:hover td[b-vy5mbdfcis] { background: #E8F4F2; }
.tbl tbody tr.selected td[b-vy5mbdfcis] { background: var(--mes-grid-selected); }
.tbl tbody tr.no-order td[b-vy5mbdfcis] { color: #777; background: #F3F3F3; cursor: default; }
.center[b-vy5mbdfcis] { text-align: center; }
.right[b-vy5mbdfcis] { text-align: right; }

.w-due[b-vy5mbdfcis] { width: 122px; } .w-partner[b-vy5mbdfcis] { width: 98px; } .w-item[b-vy5mbdfcis] { width: 102px; }
.w-qty[b-vy5mbdfcis] { width: 55px; } .w-last[b-vy5mbdfcis] { width: 98px; } .w-state[b-vy5mbdfcis] { width: 80px; }

.due-date[b-vy5mbdfcis] { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 16px; font-weight: 700; }
.weekday[b-vy5mbdfcis] { font-weight: 700; }
.weekday.sat[b-vy5mbdfcis] { color: #007DEB; }
.weekday.sun[b-vy5mbdfcis] { color: #F22; }
.weekday.weekday-normal[b-vy5mbdfcis] { color: #333; }

.state[b-vy5mbdfcis] {
    width: 76px; height: 27px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(0,0,0,.15); font-size: 13.5px; font-weight: 700; line-height: 1; white-space: nowrap;
}
.state.done[b-vy5mbdfcis] { background: #3CB371; color: #fff; }
.state.partial[b-vy5mbdfcis] { background: #008B8B; color: #fff; }
.state.wait[b-vy5mbdfcis] { background: #7A7A7A; color: #fff; }
.state.late[b-vy5mbdfcis] { background: #C94949; color: #fff; }

/* ===== 우 ===== */
.right-area[b-vy5mbdfcis] { display: grid; grid-template-rows: 180px minmax(0,1fr) minmax(0,1fr); gap: 3px; min-height: 0; overflow: hidden; }
.delivery-row[b-vy5mbdfcis], .bottom-row[b-vy5mbdfcis] { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; min-height: 0; overflow: hidden; }
.delivery-row > .panel[b-vy5mbdfcis], .bottom-row > .panel[b-vy5mbdfcis] { height: 100%; min-height: 0; }
.order-info.empty-pick[b-vy5mbdfcis] { display: flex; align-items: center; justify-content: center; color: #777; font-size: 15px; }

.order-grid[b-vy5mbdfcis] {
    position: absolute; left: 12px; right: 12px; top: 50px; bottom: 7px; display: grid;
    grid-template-columns: 72px minmax(120px,1.2fr) 70px minmax(110px,1fr) 76px minmax(100px,.9fr);
    grid-template-rows: 29px 29px 48px; gap: 6px 8px; align-items: center;
}
.label[b-vy5mbdfcis] { text-align: right; font-size: 14.5px; white-space: nowrap; }
.field[b-vy5mbdfcis] {
    height: 31px; padding: 4px 7px; background: #E7E7E7; border: 1px solid #C6C6C6;
    font-size: 14.5px; display: flex; align-items: center;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.field.strong[b-vy5mbdfcis] { font-weight: 700; }
.message-field[b-vy5mbdfcis] { grid-column: 4 / 7; height: 29px; }

.summary-strip[b-vy5mbdfcis] { grid-column: 1 / 7; display: grid; grid-template-columns: repeat(3, 150px); justify-content: center; gap: 10px; height: 48px; }
.summary-box[b-vy5mbdfcis] { height: 48px; border: 1px solid #C6C6C6; background: #fff; display: grid; grid-template-rows: 20px 1fr; }
.summary-box .st[b-vy5mbdfcis] { background: #008B8B; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13.5px; font-weight: 700; }
.summary-box .sv[b-vy5mbdfcis] { display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; color: #008B8B; }
.summary-box.late .st[b-vy5mbdfcis] { background: #C94949; }
.summary-box.late .sv[b-vy5mbdfcis] { color: #C94949; }

.form-body[b-vy5mbdfcis], .complete-body[b-vy5mbdfcis], .tax-body[b-vy5mbdfcis] { position: absolute; left: 11px; right: 11px; top: 50px; bottom: 9px; }
.form-grid[b-vy5mbdfcis] { display: grid; grid-template-columns: 76px minmax(88px,1fr) 76px minmax(88px,1fr); gap: 6px 7px; align-items: center; }
.input[b-vy5mbdfcis] {
    height: 31px; padding: 3px 7px; background: #fff; font-size: 14.5px; outline: none;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.input.read[b-vy5mbdfcis] { background: #E7E7E7; border: 1px solid #C6C6C6; box-shadow: none; }
.textarea[b-vy5mbdfcis] { height: 46px; resize: none; }
.note-span[b-vy5mbdfcis] { grid-column: 2 / 5; }
.helper[b-vy5mbdfcis] { font-size: 11.5px; color: #777; line-height: 14px; }
.form-helper[b-vy5mbdfcis] { margin-top: 4px; margin-left: 83px; }
.complete-helper[b-vy5mbdfcis] { margin-top: 6px; margin-left: 91px; }
.message[b-vy5mbdfcis] { margin-top: 6px; margin-left: 83px; color: #1B6B5C; }
.message.error[b-vy5mbdfcis] { color: #BD3737; }

.split-action[b-vy5mbdfcis] { position: absolute; left: 0; bottom: 0; }
.split-btn[b-vy5mbdfcis] { width: 92px; height: 38px; border: 0; background: var(--mes-new); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.form-actions[b-vy5mbdfcis] { position: absolute; right: 0; bottom: 0; display: flex; gap: 6px; }
.crud[b-vy5mbdfcis] { width: 78px; height: 38px; border: 0; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.add[b-vy5mbdfcis] { background: var(--mes-add); }
.delete[b-vy5mbdfcis] { background: var(--mes-delete); }
.crud:disabled[b-vy5mbdfcis], .small-btn:disabled[b-vy5mbdfcis], .big-action:disabled[b-vy5mbdfcis] {
    background: #AEB4BA; color: #F4F5F6; border: 1px solid #8D949A; cursor: not-allowed;
}

.history-panel[b-vy5mbdfcis] { min-width: 0; overflow: hidden; }
.history-panel .table-wrap[b-vy5mbdfcis] { position: absolute; left: 0; right: 0; top: 42px; bottom: 32px; overflow: auto; }
.history-panel .tbl[b-vy5mbdfcis] { font-size: 13.5px; min-width: 0; }
.history-panel .tbl th[b-vy5mbdfcis] { height: 34px; }
.history-panel .tbl td[b-vy5mbdfcis] { height: 30px; }
.h-seq[b-vy5mbdfcis] { width: 48px; } .h-date[b-vy5mbdfcis] { width: 100px; } .h-qty[b-vy5mbdfcis] { width: 70px; } .h-user[b-vy5mbdfcis] { width: 78px; }
.history-panel .footer[b-vy5mbdfcis] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 32px;
    border-top: 1px solid #C8C8C8; background: #FAFAFA;
    display: flex; align-items: center; padding: 0 8px; font-size: 13px;
}
.history-panel .footer strong[b-vy5mbdfcis] { margin-left: auto; }

.complete-grid[b-vy5mbdfcis] { display: grid; grid-template-columns: 82px minmax(120px,1fr); gap: 9px; align-items: center; }
.complete-actions[b-vy5mbdfcis] { position: absolute; right: 0; bottom: 0; display: flex; gap: 6px; }
.big-action[b-vy5mbdfcis] { width: 108px; height: 41px; border: 0; color: #fff; font-size: 15px; font-weight: 700; background: #0B63A0; cursor: pointer; }
.big-action.cancel[b-vy5mbdfcis] { background: var(--mes-delete); }

.tax-panel[b-vy5mbdfcis] { background: #FFF9E8; }
.tax-check[b-vy5mbdfcis] { display: flex; align-items: center; gap: 7px; font-size: 14.5px; margin-bottom: 8px; }
.tax-grid[b-vy5mbdfcis] { display: grid; grid-template-columns: 70px minmax(90px,1fr); gap: 7px 8px; align-items: center; }
.tax-grid .input[b-vy5mbdfcis] { width: 100%; }
.tax-helper[b-vy5mbdfcis] { font-size: 11.5px; color: #777; line-height: 14px; margin-top: 5px; margin-left: 78px; }
.tax-actions[b-vy5mbdfcis] { position: absolute; right: 0; bottom: 0; display: flex; gap: 6px; }
.small-btn[b-vy5mbdfcis] { width: 68px; height: 34px; border: 0; color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; }
.small-btn.save[b-vy5mbdfcis] { background: var(--mes-new); }
.small-btn.remove[b-vy5mbdfcis] { background: var(--mes-delete); }
/* /Components/Pages/DeliveryStatus.razor.rz.scp.css */
/* 04-01 납품진행목록. html/04_납품관리/01_납품진행목록_v7스타일.html 이식. */
.delivery-status-page[b-slwl34elll] { position: relative; width: 100%; height: 100%; overflow: hidden; }

.panel-head[b-slwl34elll] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-slwl34elll] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-slwl34elll] { width: 20px; height: 20px; }
.count[b-slwl34elll] { margin-left: auto; padding-right: 12px; font-size: 13px; font-weight: 500; color: #dce4e9; }

.search-section[b-slwl34elll] { position: absolute; left: 0; right: 0; top: 0; height: 106px; background: #fff; overflow: hidden; }
.search-fields[b-slwl34elll] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px; background: #fff;
    display: flex; align-items: center; gap: 20px; padding: 0 154px 0 20px;
}
.search-group[b-slwl34elll] { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.search-group label[b-slwl34elll] { font-size: 15.5px; }
.search-input[b-slwl34elll] { height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4; background: #fff; outline: none; font-size: 15px; }
.search-input.date[b-slwl34elll] { width: 145px; }
.search-input.normal[b-slwl34elll] { width: 180px; }
.search-btn[b-slwl34elll] {
    position: absolute; right: 7px; top: 7px; width: 140px; height: 49px;
    border: 0; background: var(--mes-new); color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 13px;
    font-size: 16px; font-weight: 700; cursor: pointer;
}
.search-btn svg[b-slwl34elll] { width: 24px; height: 24px; }

.list-panel[b-slwl34elll] {
    position: absolute; left: 0; right: 0; top: 112px; bottom: 0;
    background: #fff; border: 1px solid #8A8A8A; overflow: hidden;
}
.table-wrap[b-slwl34elll] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; }
.data-table[b-slwl34elll] { border-collapse: collapse; table-layout: fixed; min-width: 1570px; width: 100%; background: #fff; font-size: 13.33px; }
.data-table th[b-slwl34elll] {
    position: sticky; top: 0; z-index: 2; height: 38px; padding: 0 8px;
    background: var(--mes-grid-head); color: #fff; font-weight: 700; text-align: left;
    white-space: nowrap; border-bottom: 1px solid var(--mes-grid-line);
}
.data-table td[b-slwl34elll] {
    height: 31px; padding: 3px 8px; background: #fff; color: #000;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    border-bottom: 1px solid var(--mes-grid-line);
}
.data-table tbody tr[b-slwl34elll] { cursor: pointer; }
.data-table tbody tr:hover td[b-slwl34elll] { background: #E8F4F2; }
.data-table tbody tr.selected td[b-slwl34elll], .data-table tbody tr.selected:hover td[b-slwl34elll] { background: var(--mes-grid-selected); }
.data-table .empty[b-slwl34elll] { text-align: center; color: #777; padding: 26px; cursor: default; }
.center[b-slwl34elll] { text-align: center; }
.right[b-slwl34elll] { text-align: right; }
.remain[b-slwl34elll] { color: #C82929; font-weight: 700; }

.c-no[b-slwl34elll] { width: 150px; } .c-partner[b-slwl34elll] { width: 120px; } .c-item[b-slwl34elll] { width: 140px; }
.c-target[b-slwl34elll] { width: 100px; } .c-delivered[b-slwl34elll] { width: 95px; } .c-remain[b-slwl34elll] { width: 95px; }
.c-ordered[b-slwl34elll] { width: 110px; } .c-due[b-slwl34elll] { width: 110px; } .c-prod[b-slwl34elll] { width: 100px; }
.c-state[b-slwl34elll] { width: 105px; } .c-duestate[b-slwl34elll] { width: 100px; } .c-last[b-slwl34elll] { width: 115px; }
.c-tax[b-slwl34elll] { width: 105px; } .c-note[b-slwl34elll] { width: 190px; }

.status[b-slwl34elll] {
    width: 82px; height: 25px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #C7CDD1; font-size: 12.5px; line-height: 1; white-space: nowrap;
}
.status.done[b-slwl34elll] { background: #3CB371; border-color: rgba(0,0,0,.15); color: #fff; font-weight: 700; }
.status.partial[b-slwl34elll] { background: #008B8B; border-color: rgba(0,0,0,.15); color: #fff; font-weight: 700; }
.status.wait[b-slwl34elll] { background: #7A7A7A; border-color: rgba(0,0,0,.15); color: #fff; font-weight: 700; }
.status.late[b-slwl34elll] { background: #C94949; border-color: rgba(0,0,0,.15); color: #fff; font-weight: 700; }
.status.ready[b-slwl34elll] { background: #DCEAF7; border-color: #9BBEDB; color: #2A628C; font-weight: 700; }

/* 조회 실패 표시 */
.panel-head .load-error[b-slwl34elll] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }
/* /Components/Pages/EquipmentAlarmHistory.razor.rz.scp.css */
/* 06-03 설비별 알람이력 관리 고유 값. 공통 골격은 wwwroot/equipment-screen.css 참조. */
.rows-3[b-anmx1z5sw6] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-time[b-anmx1z5sw6] { width: 155px; } .c-code[b-anmx1z5sw6] { width: 105px; } .c-name[b-anmx1z5sw6] { width: 140px; }
.c-type[b-anmx1z5sw6] { width: 110px; } .c-proc[b-anmx1z5sw6] { width: 100px; }
.c-dur[b-anmx1z5sw6] { width: 100px; } .c-cnt[b-anmx1z5sw6] { width: 130px; } .c-state[b-anmx1z5sw6] { width: 110px; }

.panel-head .load-error[b-anmx1z5sw6] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }
.tbl .c-alarm[b-anmx1z5sw6] { width: 92px; }
/* /Components/Pages/EquipmentCode.razor.rz.scp.css */
/* 01-05 설비코드 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.q1l[b-3uxtnwtjck] { left: 30px; }   .q1[b-3uxtnwtjck] { left: 107px; width: 180px; }
.q2l[b-3uxtnwtjck] { left: 317px; }  .q2[b-3uxtnwtjck] { left: 410px; width: 180px; }

.data-table[b-3uxtnwtjck] { min-width: 900px; width: 900px; font-size: 13.33px; }
.data-table th[b-3uxtnwtjck], .data-table td[b-3uxtnwtjck] { font-size: 13.33px; }
.data-table th[b-3uxtnwtjck] { height: 38px; }

.c-code[b-3uxtnwtjck] { width: 110px; } .c-name[b-3uxtnwtjck] { width: 220px; } .c-type[b-3uxtnwtjck] { width: 180px; }
.c-maker[b-3uxtnwtjck] { width: 220px; } .c-use[b-3uxtnwtjck] { width: 100px; }

/* 상세 폼 : 거래처코드 v7 의 38~45px 세로 리듬을 그대로 사용 */
.l-code[b-3uxtnwtjck] { top: 14px; } .f-code[b-3uxtnwtjck] { top: 14px; }
.l-name[b-3uxtnwtjck] { top: 52px; } .f-name[b-3uxtnwtjck] { top: 52px; }
.l-type[b-3uxtnwtjck] { top: 93px; } .f-type[b-3uxtnwtjck] { top: 93px; }
.l-model[b-3uxtnwtjck] { top: 135px; } .f-model[b-3uxtnwtjck] { top: 135px; }
.l-maker[b-3uxtnwtjck] { top: 176px; } .f-maker[b-3uxtnwtjck] { top: 176px; }
.l-date[b-3uxtnwtjck] { top: 221px; } .f-date[b-3uxtnwtjck] { top: 221px; }
.l-monitor[b-3uxtnwtjck] { top: 267px; line-height: 22px; }
.monitor-box[b-3uxtnwtjck] { position: absolute; left: 116px; top: 263px; width: 261px; height: 112px; color: #000; font-size: 14px; }
.monitor-grid[b-3uxtnwtjck] {
    display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 28px;
    column-gap: 12px; row-gap: 2px; align-items: center;
}
.monitor-grid label[b-3uxtnwtjck] { display: flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 14px; }
.monitor-grid input[b-3uxtnwtjck] { accent-color: #0B78D0; }
.l-use[b-3uxtnwtjck] { top: 399px; } .f-use[b-3uxtnwtjck] { left: 110px; top: 399px; gap: 17px; }
.f-error[b-3uxtnwtjck] { top: 437px; }
/* /Components/Pages/EquipmentConsumable.razor.rz.scp.css */
/* 06-05 설비별 소모품 관리 고유 값. 공통 골격은 wwwroot/equipment-screen.css 참조. */
.rows-2[b-fmi6ma1siz] { grid-template-rows: 106px minmax(0, 1fr); }
.cols-main-431[b-fmi6ma1siz] { grid-template-columns: minmax(0, 1fr) 431px; }
.rows-main-235[b-fmi6ma1siz] { display: grid; grid-template-rows: minmax(0, 1fr) 235px; gap: 3px; min-height: 0; }

.c-code[b-fmi6ma1siz] { width: 100px; } .c-name[b-fmi6ma1siz] { width: 130px; } .c-type[b-fmi6ma1siz] { width: 105px; }
.c-part[b-fmi6ma1siz] { width: 130px; } .c-basis[b-fmi6ma1siz] { width: 120px; } .c-num[b-fmi6ma1siz] { width: 105px; }
.c-gauge[b-fmi6ma1siz] { width: 180px; } .c-state[b-fmi6ma1siz] { width: 105px; }

.h-date[b-fmi6ma1siz] { width: 120px; } .h-num[b-fmi6ma1siz] { width: 130px; }

.panel-head .load-error[b-fmi6ma1siz] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }
.form-row .field-note[b-fmi6ma1siz] { grid-column: 2; margin-top: 4px; font-size: 12px; color: #6B7280; }
/* /Components/Pages/EquipmentMonitor.razor.rz.scp.css */
/* 06-01 설비별 구동현황 모니터링 고유 값. 공통 골격은 wwwroot/equipment-screen.css 참조. */
.rows-3[b-fn9te7uiv5] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-code[b-fn9te7uiv5] { width: 110px; } .c-name[b-fn9te7uiv5] { width: 160px; } .c-type[b-fn9te7uiv5] { width: 120px; } .c-proc[b-fn9te7uiv5] { width: 110px; }
.c-state[b-fn9te7uiv5] { width: 110px; } .c-run[b-fn9te7uiv5] { width: 130px; } .c-rate[b-fn9te7uiv5] { width: 110px; } .c-qty[b-fn9te7uiv5] { width: 110px; }
.c-alarm[b-fn9te7uiv5] { width: 80px; } .c-last[b-fn9te7uiv5] { width: 180px; } .c-comm[b-fn9te7uiv5] { width: 110px; }

.panel-head .load-error[b-fn9te7uiv5] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }

.badge.faded[b-fn9te7uiv5] { opacity: .5; }
.search-fields .auto[b-fn9te7uiv5] { display: inline-flex; align-items: center; gap: 6px; margin-left: 12px; font-size: 13px; color: #374151; }
.search-fields .auto input[b-fn9te7uiv5] { width: 14px; height: 14px; }
.panel-head .read-at[b-fn9te7uiv5] { margin-left: 10px; font-size: 12px; font-weight: 600; opacity: .8; }
/* /Components/Pages/EquipmentUptime.razor.rz.scp.css */
/* 06-02 설비별 가동시간관리 고유 값. 공통 골격은 wwwroot/equipment-screen.css 참조. */
.rows-3[b-yvtcp5h126] { grid-template-rows: 106px 94px minmax(0, 1fr); }
.cols-56-44[b-yvtcp5h126] { grid-template-columns: 56% 44%; }
.rows-205[b-yvtcp5h126] { grid-template-rows: 205px minmax(0, 1fr); }

.c-date[b-yvtcp5h126] { width: 110px; } .c-code[b-yvtcp5h126] { width: 105px; } .c-name[b-yvtcp5h126] { width: 140px; } .c-type[b-yvtcp5h126] { width: 110px; }
.c-min[b-yvtcp5h126] { width: 115px; } .c-rate[b-yvtcp5h126] { width: 95px; }

.panel-head .load-error[b-yvtcp5h126] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }
/* /Components/Pages/ItemCode.razor.rz.scp.css */
/* 01-02 품목코드 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.q1l[b-tt4au668sb] { left: 30px; }   .q1[b-tt4au668sb] { left: 107px; width: 180px; }
.q2l[b-tt4au668sb] { left: 325px; }  .q2[b-tt4au668sb] { left: 389px; width: 180px; }
.q3l[b-tt4au668sb] { left: 612px; }  .q3[b-tt4au668sb] { left: 684px; width: 180px; }
.q4l[b-tt4au668sb] { left: 897px; }  .q4[b-tt4au668sb] { left: 985px; width: 180px; }

.data-table[b-tt4au668sb] { min-width: 1670px; width: 1670px; }

.c-code[b-tt4au668sb] { width: 90px; } .c-name[b-tt4au668sb] { width: 120px; } .c-unit[b-tt4au668sb] { width: 60px; }
.c-partner[b-tt4au668sb] { width: 100px; } .c-partnerno[b-tt4au668sb] { width: 130px; }
.c-ex1[b-tt4au668sb] { width: 125px; } .c-ex2[b-tt4au668sb] { width: 125px; }
.c-price[b-tt4au668sb] { width: 90px; } .c-order[b-tt4au668sb] { width: 90px; } .c-desc[b-tt4au668sb] { width: 100px; }
.c-use[b-tt4au668sb] { width: 80px; } .c-created[b-tt4au668sb] { width: 145px; } .c-createusr[b-tt4au668sb] { width: 80px; }
.c-updated[b-tt4au668sb] { width: 145px; } .c-updateusr[b-tt4au668sb] { width: 80px; }

/* 상세 폼 : 좌표는 42px 헤더 기준 */
.l-code[b-tt4au668sb] { top: 14px; } .f-code[b-tt4au668sb] { top: 14px; }
.l-name[b-tt4au668sb] { top: 52px; } .f-name[b-tt4au668sb] { top: 52px; }
.l-unit[b-tt4au668sb] { top: 93px; } .f-unit[b-tt4au668sb] { left: 116px; top: 93px; gap: 12px; }
.l-partner[b-tt4au668sb] { top: 134px; } .f-partner[b-tt4au668sb] { left: 116px; top: 134px; gap: 8px; }
.partner-select[b-tt4au668sb] { height: 27px; width: 193px; border: 1px solid #9CAAB6; background: #D6E4F0; font-size: 14.67px; }
.l-partnerno[b-tt4au668sb] { top: 176px; } .f-partnerno[b-tt4au668sb] { top: 176px; }
.l-partnername[b-tt4au668sb] { top: 218px; } .f-partnername[b-tt4au668sb] { top: 218px; }
.l-ex1[b-tt4au668sb] { top: 260px; } .f-ex1[b-tt4au668sb] { top: 260px; }
.l-ex2[b-tt4au668sb] { top: 302px; } .f-ex2[b-tt4au668sb] { top: 302px; }
.l-price[b-tt4au668sb] { top: 344px; } .f-price[b-tt4au668sb] { top: 344px; }
.l-order[b-tt4au668sb] { top: 386px; } .f-order[b-tt4au668sb] { top: 386px; }
.l-desc[b-tt4au668sb] { top: 432px; } .f-desc[b-tt4au668sb] { top: 432px; }
.l-use[b-tt4au668sb] { top: 530px; } .f-use[b-tt4au668sb] { left: 110px; top: 530px; gap: 17px; }
.f-error[b-tt4au668sb] { top: 566px; }
/* /Components/Pages/KpiDashboard.razor.rz.scp.css */
/* 07-01 KPI현황. html/07_KPI/01_KPI현황_v7스타일.html 이식.
   조회조건 106px / KPI 카드 154px / 본문(좌 60% : 차트+집계, 우 40% : 상세). */
/* KPI 카드줄을 154px→100px 로 줄여 아래 표에 높이를 넘긴다.
   월별 집계는 12개월이 스크롤 없이 다 보여야 한다. */
.kpi-page[b-2laazodfr2] { height: 100%; display: grid; grid-template-rows: 106px 100px minmax(0, 1fr); gap: 3px; }

.panel[b-2laazodfr2] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-2laazodfr2] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; gap: 8px; padding: 0 8px; font-size: 18px; font-weight: 700;
}
.panel-head .icon[b-2laazodfr2] { color: var(--mes-orange); }

.search-fields[b-2laazodfr2] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px;
    display: flex; align-items: center; gap: 10px; padding: 0 12px;
}
.search-fields label[b-2laazodfr2] { font-size: 15.5px; white-space: nowrap; }
.year[b-2laazodfr2], .month[b-2laazodfr2] {
    height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4;
    background: #fff; outline: none; font-size: 15px;
}
.year[b-2laazodfr2] { width: 115px; text-align: center; font-weight: 700; }
.month[b-2laazodfr2] { width: 105px; }
.search-btn[b-2laazodfr2] {
    margin-left: auto; width: 92px; height: 38px; border: 0;
    background: var(--mes-new); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
}

/* ===== KPI 카드 ===== */
.kpi-wrap[b-2laazodfr2] { height: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; }
.kpi-card[b-2laazodfr2] {
    border: 1px solid #8C8C8C; background: #fff;
    display: grid; grid-template-columns: 210px 1fr 210px; min-width: 0; cursor: pointer;
}
.kpi-card:hover[b-2laazodfr2] { outline: 2px solid #8CCFC6; outline-offset: -2px; }
.kpi-card.selected[b-2laazodfr2] { outline: 3px solid #26A69A; outline-offset: -3px; }
.kpi-title[b-2laazodfr2] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #F2F2F2; border-right: 1px solid #D0D0D0; font-size: 18px; font-weight: 800; gap: 5px;
}
.kpi-title small[b-2laazodfr2] { font-size: 12px; font-weight: 400; color: #666; }
.kpi-value[b-2laazodfr2] {
    display: flex; align-items: center; justify-content: center;
    font-size: 36px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1;
}
.kpi-side[b-2laazodfr2] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    border-left: 1px solid #E0E0E0; background: #FAFAFA; gap: 5px;
}
.lab[b-2laazodfr2] { font-size: 12.5px; color: #666; }
.compare[b-2laazodfr2] { font-size: 17px; font-weight: 800; }
.kpi-card.output .kpi-value[b-2laazodfr2], .kpi-card.output .compare[b-2laazodfr2] { color: #1E88E5; }
.kpi-card.defect .kpi-value[b-2laazodfr2], .kpi-card.defect .compare[b-2laazodfr2] { color: #C94949; }

/* ===== 본문 ===== */
.work[b-2laazodfr2] { display: grid; grid-template-columns: 60% 40%; gap: 3px; min-height: 0; }
/* 차트 30% / 월별 집계 70%. 집계표가 12행(헤더 38 + 12×31 = 410px)을 담아야 한다. */
.left[b-2laazodfr2] { display: grid; grid-template-rows: 30% 70%; gap: 3px; min-height: 0; }
.chart-title[b-2laazodfr2] { margin-left: 12px; font-size: 14px; font-weight: 700; color: #FFE082; white-space: nowrap; }
.chart-legend[b-2laazodfr2] { margin-left: auto; margin-right: 8px; font-size: 12px; color: #DCE4E9; white-space: nowrap; }
.sort-guide[b-2laazodfr2] { margin-left: auto; margin-right: 8px; font-size: 12px; color: #DCE4E9; white-space: nowrap; }

.chart-box[b-2laazodfr2] {
    position: absolute; left: 34px; right: 22px; top: 58px; bottom: 34px;
    border-left: 1px solid #777; border-bottom: 1px solid #777; padding: 12px 8px 0 14px;
}
.bars[b-2laazodfr2] { height: 100%; display: flex; align-items: flex-end; justify-content: space-around; gap: 8px; }
.bar-col[b-2laazodfr2] { flex: 1; max-width: 65px; height: 100%; display: flex; align-items: flex-end; justify-content: center; position: relative; cursor: pointer; }
.bar[b-2laazodfr2] { width: 32px; min-height: 4px; background: #1E88E5; position: relative; }
.bar.defect[b-2laazodfr2] { background: #C94949; }
.bar.on[b-2laazodfr2] { outline: 2px solid #26A69A; outline-offset: 1px; }
.bar-value[b-2laazodfr2] { position: absolute; top: -21px; left: -26px; right: -26px; text-align: center; font-size: 11px; font-weight: 800; white-space: nowrap; }
.bar-label[b-2laazodfr2] { position: absolute; bottom: -22px; left: -10px; right: -10px; text-align: center; font-size: 11.5px; font-weight: 700; white-space: nowrap; }

.grid-wrap[b-2laazodfr2] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; scrollbar-gutter: stable; }
.tbl[b-2laazodfr2] { border-collapse: collapse; table-layout: fixed; width: 100%; font-size: 14.5px; }
.tbl th[b-2laazodfr2] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 6px; white-space: nowrap;
    border-right: 1px solid #527087;
}
.tbl th.sortable[b-2laazodfr2] { cursor: pointer; user-select: none; }
.tbl th.sortable:hover[b-2laazodfr2] { background: #31576D; }
.tbl th .sort-icon[b-2laazodfr2] { margin-left: 5px; color: #B7C6D0; font-size: 11px; }
.tbl th.active .sort-icon[b-2laazodfr2] { color: #fff; font-size: 12px; font-weight: 800; }
.tbl td[b-2laazodfr2] {
    height: 31px; border-right: 1px solid #D1D1D1; border-bottom: 1px solid #DEDEDE;
    padding: 4px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr[b-2laazodfr2] { cursor: pointer; }
.tbl tbody tr:hover td[b-2laazodfr2] { background: #E8F4F2; }
.tbl tbody tr.selected td[b-2laazodfr2] { background: var(--mes-grid-selected); }
.tbl tbody tr.no-row td[b-2laazodfr2] { color: #777; background: #F3F3F3; cursor: default; }
.center[b-2laazodfr2] { text-align: center; }
.number[b-2laazodfr2] { text-align: right; }
.c-month[b-2laazodfr2] { width: 80px; }

/* ===== 우측 상세 ===== */
.detail[b-2laazodfr2] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0; padding: 12px;
    display: grid; grid-template-rows: auto repeat(4, 1fr); gap: 8px;
}
.detail-title[b-2laazodfr2] { font-size: 17px; font-weight: 800; color: #222; padding: 2px 2px 8px; border-bottom: 1px solid #C7C7C7; }
.detail-row[b-2laazodfr2] {
    display: grid; grid-template-columns: 150px 1fr 145px; align-items: center;
    border: 1px solid #C5C5C5; background: #FAFAFA; min-height: 52px;
}
.detail-row .lab[b-2laazodfr2] {
    height: 100%; display: flex; align-items: center; padding-left: 12px;
    background: #F0F0F0; font-size: 14.5px; font-weight: 700; color: #222;
}
.detail-row .val[b-2laazodfr2] { padding-left: 16px; font-size: 23px; font-weight: 800; font-variant-numeric: tabular-nums; }
.detail-row .desc[b-2laazodfr2] { font-size: 12px; color: #666; text-align: right; padding-right: 12px; }
.detail-row.output .val[b-2laazodfr2] { color: #1E88E5; }
.detail-row.defect .val[b-2laazodfr2] { color: #C94949; }
.detail-row.base .val[b-2laazodfr2] { color: #37474F; font-size: 19px; }
/* /Components/Pages/Login.razor.rz.scp.css */
/* html/00_로그인.html 시안 이식. 색상 토큰과 리셋은 wwwroot/app.css 참조. */
.login-page[b-jqy94anzqh] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login[b-jqy94anzqh] { width: 380px; max-width: 100%; }

.brand[b-jqy94anzqh] { text-align: center; margin-bottom: 34px; user-select: none; }
.brand-title[b-jqy94anzqh] {
    font-family: Calibri, Arial, sans-serif;
    font-size: 44px; line-height: 1; font-weight: 700;
    color: var(--mes-accent); letter-spacing: 1.2px;
}
.brand-site[b-jqy94anzqh] { margin-top: 10px; font-size: 22px; color: #E8EDF3; font-weight: 400; }
.brand-sys[b-jqy94anzqh] { margin-top: 8px; font-size: 12.5px; color: #6E7E93; }

.panel[b-jqy94anzqh] { background: #161F33; border: 1px solid rgba(255,255,255,.07); }
.panel-head[b-jqy94anzqh] {
    height: 42px; display: flex; align-items: center; padding: 0 16px;
    background: var(--mes-panel-head); font-size: 14px; font-weight: 700; color: #fff;
}
.panel-body[b-jqy94anzqh] { padding: 22px 20px 24px; }

.field[b-jqy94anzqh] { margin-bottom: 14px; }
.field label[b-jqy94anzqh] { display: block; font-size: 12.5px; color: #9FB0C2; margin-bottom: 6px; }
.field input[b-jqy94anzqh], .field select[b-jqy94anzqh] {
    width: 100%; height: 38px; padding: 0 11px; font-size: 14px;
    background: #0B1220; color: #E8EDF3; border: 1px solid #2A3549; border-radius: 2px;
    font-family: inherit; outline: none;
}
.field input:focus[b-jqy94anzqh], .field select:focus[b-jqy94anzqh] {
    border-color: var(--mes-teal);
    box-shadow: 0 0 0 2px rgba(58,213,191,.18);
}
.field input[b-jqy94anzqh]::placeholder { color: #4E5C72; }

.err[b-jqy94anzqh] { margin: -6px 0 12px; font-size: 12.5px; color: #F09595; }

.remember[b-jqy94anzqh] {
    display: flex; align-items: center; gap: 7px;
    margin: 16px 0 18px; font-size: 12.5px; color: #9FB0C2;
}
.remember input[b-jqy94anzqh] { width: 14px; height: 14px; accent-color: var(--mes-teal); }

.btn-login[b-jqy94anzqh] {
    width: 100%; height: 44px; border: 0; border-radius: 2px; cursor: pointer;
    background: var(--mes-grid-head); color: #fff; font-size: 15px; font-weight: 700;
    font-family: inherit; letter-spacing: .5px;
}
.btn-login:hover[b-jqy94anzqh] { background: #2F5771; }
.btn-login:focus-visible[b-jqy94anzqh] { outline: 2px solid var(--mes-teal); outline-offset: 2px; }

.demo[b-jqy94anzqh] { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.06); }
.demo-t[b-jqy94anzqh] { font-size: 11.5px; color: #5E6D82; margin-bottom: 8px; }
.demo-list[b-jqy94anzqh] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.demo-list button[b-jqy94anzqh] {
    background: #0B1220; border: 1px solid #2A3549; color: #9FB0C2; font-family: inherit;
    font-size: 11.5px; padding: 7px 8px; cursor: pointer; border-radius: 2px;
    text-align: left; line-height: 1.5;
}
.demo-list button:hover[b-jqy94anzqh] { border-color: #3AD5BF; color: #E8EDF3; }
.demo-list b[b-jqy94anzqh] { display: block; color: #E8EDF3; font-size: 12px; font-weight: 600; }

.note[b-jqy94anzqh] {
    margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.06);
    font-size: 11.5px; color: #5E6D82; line-height: 1.85;
}

.foot[b-jqy94anzqh] { margin-top: 26px; text-align: center; font-size: 12px; color: #4A5768; letter-spacing: .4px; }
.foot b[b-jqy94anzqh] { color: #7A8899; font-family: Calibri, Arial, sans-serif; font-size: 14px; }
/* /Components/Pages/OntimeRate.razor.rz.scp.css */
/* 04-04 납기준수율현황. html/04_납품관리/04_납기준수율현황_v7스타일.html 이식.
   조회조건 106px / 차트 39% / 상세목록 나머지. */
.ontime-page[b-0eon7spwsn] { height: 100%; display: grid; grid-template-rows: 106px 39% minmax(0, 1fr); gap: 3px; }

.panel[b-0eon7spwsn] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-0eon7spwsn] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; gap: 4px; font-size: 18px; font-weight: 700;
}
.head-icon[b-0eon7spwsn] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-0eon7spwsn] { width: 20px; height: 20px; }
.count[b-0eon7spwsn] { margin-left: auto; padding-right: 12px; font-size: 13px; font-weight: 500; color: #dce4e9; }

.search-fields[b-0eon7spwsn] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0;
    display: flex; align-items: center; gap: 12px; padding: 0 20px;
}
.search-fields label[b-0eon7spwsn] { font-size: 15.5px; white-space: nowrap; }
.input[b-0eon7spwsn] {
    height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4;
    background: #fff; outline: none; font-size: 15px;
}
.input.year[b-0eon7spwsn] { width: 110px; }
.input.customer[b-0eon7spwsn] { width: 180px; }
.search-btn[b-0eon7spwsn] {
    height: 32px; width: 120px; border: 0; background: var(--mes-new); color: #fff;
    font-size: 15px; font-weight: 700; cursor: pointer;
}
.total[b-0eon7spwsn] { margin-left: auto; padding-right: 8px; font-size: 14px; color: #37474F; }
.total strong[b-0eon7spwsn] { font-size: 19px; color: #0B63A0; }

/* ===== 차트 ===== */
.chart-panel[b-0eon7spwsn] { min-height: 0; }
.chart-area[b-0eon7spwsn] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; padding: 12px 24px 14px 54px; }
.legend[b-0eon7spwsn] { position: absolute; right: 25px; top: 10px; display: flex; gap: 20px; font-size: 13px; font-weight: 700; }
.legend span[b-0eon7spwsn] { display: flex; align-items: center; gap: 6px; }
.sw[b-0eon7spwsn] { width: 19px; height: 10px; display: inline-block; }
.sw.ok[b-0eon7spwsn] { background: #3CB371; }
.sw.bad[b-0eon7spwsn] { background: #C94949; }

.y-label[b-0eon7spwsn] { position: absolute; left: 12px; top: 50%; transform: rotate(-90deg) translateY(-50%); transform-origin: center; font-size: 13px; }
.axis-ticks[b-0eon7spwsn] {
    position: absolute; left: 18px; top: 46px; bottom: 46px; width: 32px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 11.5px; color: #666; text-align: right;
}

.chart-body[b-0eon7spwsn] { position: absolute; left: 54px; right: 24px; top: 46px; bottom: 46px; border-left: 1px solid #777; border-bottom: 1px solid #777; }
.months[b-0eon7spwsn] { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(12, 1fr); align-items: end; padding: 0 6px; }
.month[b-0eon7spwsn] {
    height: 100%; position: relative; display: flex; justify-content: center; align-items: flex-end; gap: 4px;
    cursor: pointer; border-left: 1px solid transparent; border-right: 1px solid transparent;
}
.month:hover[b-0eon7spwsn] { background: rgba(38,166,154,.06); }
.month.on[b-0eon7spwsn] { background: rgba(38,166,154,.14); border-color: #26A69A; }
.bar[b-0eon7spwsn] { width: 16px; min-height: 0; }
.bar.ok[b-0eon7spwsn] { background: #3CB371; }
.bar.bad[b-0eon7spwsn] { background: #C94949; }
.mlabel[b-0eon7spwsn] { position: absolute; bottom: -24px; left: 0; right: 0; text-align: center; font-size: 12px; }

/* ===== 상세 목록 ===== */
.grid-wrap[b-0eon7spwsn] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; }
.tbl[b-0eon7spwsn] { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 1070px; font-size: 13.33px; }
.tbl th[b-0eon7spwsn] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 8px; white-space: nowrap;
    border-bottom: 1px solid var(--mes-grid-line);
}
.tbl td[b-0eon7spwsn] {
    height: 31px; padding: 3px 8px; border-bottom: 1px solid var(--mes-grid-line);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr:hover td[b-0eon7spwsn] { background: #E8F4F2; }
.tbl tbody tr.no-order td[b-0eon7spwsn] { color: #777; background: #F3F3F3; }
.center[b-0eon7spwsn] { text-align: center; }
.right[b-0eon7spwsn] { text-align: right; }

.c-no[b-0eon7spwsn] { width: 135px; } .c-partner[b-0eon7spwsn] { width: 105px; } .c-item[b-0eon7spwsn] { width: 110px; }
.c-qty[b-0eon7spwsn] { width: 100px; } .c-date[b-0eon7spwsn] { width: 110px; } .c-status[b-0eon7spwsn] { width: 100px; }

.state[b-0eon7spwsn] {
    width: 66px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(0,0,0,.15); font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
.state.done[b-0eon7spwsn] { background: #3CB371; color: #fff; }
.state.late[b-0eon7spwsn] { background: #C94949; color: #fff; }
.state.wait[b-0eon7spwsn] { background: #7A7A7A; color: #fff; }
.state.ready[b-0eon7spwsn] { background: #DCEAF7; border-color: #9BBEDB; color: #2A628C; }
/* /Components/Pages/OrderList.razor.rz.scp.css */
/* 02-01 수주목록 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.screen-page[b-weuh7edr7b] {
    /* 상세 패널이 없는 전체폭 목록 화면. */
    --list-right: 3px;
}

.date-box[b-weuh7edr7b], .search-box[b-weuh7edr7b] {
    position: absolute; top: 16px; height: 31px; padding: 2px 7px;
    border: 1px solid #B9B9B9; background: #fff; outline: none; color: #000; font-size: 15px;
}
.date-box:focus[b-weuh7edr7b], .search-box:focus[b-weuh7edr7b] { outline: 1px solid #86B7FE; outline-offset: -1px; }

.l-date[b-weuh7edr7b] { left: 20px; }
.d-from[b-weuh7edr7b] { left: 93px; width: 225px; }
.d-to[b-weuh7edr7b] { left: 326px; width: 225px; }
.l-partner[b-weuh7edr7b] { left: 591px; } .s-partner[b-weuh7edr7b] { left: 657px; width: 180px; }
.l-item[b-weuh7edr7b] { left: 867px; } .s-item[b-weuh7edr7b] { left: 930px; width: 275px; }
.search-btn[b-weuh7edr7b] { width: 180px; }

.list-head .count[b-weuh7edr7b] { margin-left: auto; padding-right: 12px; font-size: 13px; font-weight: 500; color: #dce4e9; }
.list-head .hint[b-weuh7edr7b] { padding-right: 12px; font-size: 12px; color: #dce4e9; }
.list-head .hint.error[b-weuh7edr7b] { color: #FFB4B4; font-weight: 600; }

.table-wrap[b-weuh7edr7b] { top: 42px; }

.data-table[b-weuh7edr7b] { min-width: 1800px; width: 1800px; font-size: 13px; }
.data-table th[b-weuh7edr7b], .data-table td[b-weuh7edr7b] { font-size: 13px; }
.data-table .money[b-weuh7edr7b] { text-align: right; }
.ok[b-weuh7edr7b] { color: #008000; font-weight: 700; font-size: 17px; }
.no[b-weuh7edr7b] { color: #D21E1E; font-size: 16px; }

.c-no[b-weuh7edr7b] { width: 120px; } .c-partner[b-weuh7edr7b] { width: 85px; } .c-item[b-weuh7edr7b] { width: 90px; }
.c-qty[b-weuh7edr7b] { width: 55px; } .c-price[b-weuh7edr7b] { width: 70px; } .c-amount[b-weuh7edr7b] { width: 80px; }
.c-note[b-weuh7edr7b] { width: 70px; } .c-ordered[b-weuh7edr7b] { width: 105px; } .c-due[b-weuh7edr7b] { width: 105px; }
.c-prod[b-weuh7edr7b] { width: 105px; } .c-proddone[b-weuh7edr7b] { width: 105px; } .c-deliv[b-weuh7edr7b] { width: 105px; }
.c-delivon[b-weuh7edr7b] { width: 95px; } .c-closed[b-weuh7edr7b] { width: 100px; }
.c-created[b-weuh7edr7b] { width: 140px; } .c-createusr[b-weuh7edr7b] { width: 80px; }
.c-updated[b-weuh7edr7b] { width: 140px; } .c-updateusr[b-weuh7edr7b] { width: 80px; }
/* /Components/Pages/OrderRegister.razor.rz.scp.css */
/* 02-02 수주등록. html/02_수주관리/02_수주등록_v7스타일.html 이식.
   좌(달력) 50.5% · 중(수주정보) 25.7% · 우(코드리스트) 23.8% 3분할. */
.reg-page[b-9qak50ot2m] { position: relative; width: 100%; height: 100%; overflow: hidden; background: #fff; }
.reg-grid[b-9qak50ot2m] {
    position: absolute; inset: 0;
    display: grid; grid-template-columns: 50.5% 25.7% 23.8%; gap: 4px; background: #ECEFF1;
}
.reg-panel[b-9qak50ot2m] { position: relative; background: #fff; border: 1px solid #8A8A8A; overflow: hidden; }
.reg-panel > .panel-head[b-9qak50ot2m] { position: absolute; left: 0; right: 0; top: 0; height: 42px; }

/* ===== 달력 ===== */
.calendar-body[b-9qak50ot2m] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; background: #fff; padding: 0 3px 4px; }
.calendar-toolbar[b-9qak50ot2m] { height: 66px; background: #D9D9D9; border-bottom: 1px solid #8A8A8A; position: relative; }
/* 달 제목(.cal-month)이 툴바 전체 폭을 덮는 absolute 라, 버튼 묶음을 그 위로 올려 둔다. */
.cal-nav[b-9qak50ot2m] { position: absolute; left: 9px; top: 13px; height: 42px; display: flex; gap: 6px; z-index: 2; }
.cal-nav button[b-9qak50ot2m] {
    width: 38px; height: 42px; border: 1px solid #6F8091; background: #5C9ACA;
    color: #fff; font-size: 24px; font-weight: 700; cursor: pointer;
}
.cal-nav .today[b-9qak50ot2m] { width: 125px; font-size: 13px; }
/* 달 제목은 툴바 전체 너비를 덮는 absolute 라 그대로 두면 ◀ ▶ 오늘 버튼의 클릭을 가로챈다.
   글자만 보이면 되므로 마우스 이벤트를 통과시킨다 (02-03 .month-title 과 같은 처리). */
.cal-month[b-9qak50ot2m] { position: absolute; left: 0; right: 0; top: 12px; text-align: center; font-size: 28px; font-weight: 700; pointer-events: none; }
.cal-legend[b-9qak50ot2m] { position: absolute; right: 12px; top: 11px; font-size: 13px; }
.legend-row[b-9qak50ot2m] { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.legend-chip[b-9qak50ot2m] { border: 1px solid #808080; background: #fff; padding: 3px 7px; }
.legend-chip.delivery[b-9qak50ot2m] { border-color: #3976A6; }

.week-row[b-9qak50ot2m] { height: 34px; display: grid; grid-template-columns: repeat(7, 1fr); }
.week-row div[b-9qak50ot2m] {
    background: #CFCFCF; border-right: 1px solid #9E9E9E; border-bottom: 1px solid #9E9E9E;
    display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700;
}
.week-row .sun[b-9qak50ot2m] { color: red; }
.week-row .sat[b-9qak50ot2m] { color: blue; }

.cal-grid[b-9qak50ot2m] { height: calc(100% - 100px); display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(6, 1fr); }
.day[b-9qak50ot2m] {
    position: relative; border-right: 1px solid #AFAFAF; border-bottom: 1px solid #AFAFAF;
    background: #fff; padding: 7px 8px; font-size: 15px; font-weight: 700; cursor: pointer;
}
.day.dim[b-9qak50ot2m] { background: #D0D0D0; cursor: default; }
.day.selected[b-9qak50ot2m] { background: #FFFEE0; }
.day.sun[b-9qak50ot2m] { color: red; }
.day.sat[b-9qak50ot2m] { color: blue; }
.dot[b-9qak50ot2m] { position: absolute; bottom: 7px; width: 9px; height: 9px; border: 1px solid #808080; }
.dot.order[b-9qak50ot2m] { left: 8px; background: #fff; }
.dot.due[b-9qak50ot2m] { left: 21px; background: #CFE4F5; border-color: #3976A6; }

/* ===== 수주 정보 ===== */
.order-info-body[b-9qak50ot2m] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0;
    padding: 12px 12px 74px; background: #fff; overflow: auto;
}
.reg-row[b-9qak50ot2m] { display: grid; grid-template-columns: 96px 1fr; gap: 8px; align-items: center; margin-bottom: 11px; }
.reg-row > label[b-9qak50ot2m] { text-align: right; font-size: 15px; }
.reg-input[b-9qak50ot2m], .reg-textarea[b-9qak50ot2m] {
    width: 100%; font-size: 15px; background: #fff;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.reg-input[b-9qak50ot2m] { height: 29px; padding: 1px 6px; }
.reg-textarea[b-9qak50ot2m] { height: 84px; resize: none; padding: 5px; }
.lookup[b-9qak50ot2m] { background: #87CEEB; cursor: pointer; }
.disabled-field[b-9qak50ot2m] { background: #EEEEEE; color: #A7A7A7; }

/* 진행상태. 값이 길어 한 줄 입력칸에서는 뒤가 잘린다. 줄바꿈되는 칸으로 둔다. */
.reg-state[b-9qak50ot2m] {
    min-height: 29px; padding: 5px 7px; border: 1px solid #C9D0D6; background: #F4F6F8;
    color: #37474F; font-size: 13px; line-height: 18px; word-break: keep-all;
}

.subbox[b-9qak50ot2m] { border: 1px solid #808080; margin-top: 13px; }
.subbox-title[b-9qak50ot2m] { height: 31px; background: #AFEEEE; display: flex; align-items: center; padding: 0 7px; font-size: 14px; font-weight: 700; }
.subbox-title input[b-9qak50ot2m] { margin-right: 7px; }
.subbox-body[b-9qak50ot2m] { padding: 11px 12px 13px; }
.subbox .reg-row[b-9qak50ot2m] { grid-template-columns: 120px 1fr; margin-bottom: 10px; }
.subbox .reg-textarea[b-9qak50ot2m] { height: 68px; }
.stack-row[b-9qak50ot2m] { display: block; margin-bottom: 0; }
.stack-row > label[b-9qak50ot2m] { display: block; text-align: left; margin: 0 0 7px; font-size: 15px; line-height: 20px; }

.reg-message[b-9qak50ot2m] { margin-top: 12px; font-size: 13px; color: #1B6B5C; }
.reg-message.error[b-9qak50ot2m] { color: #BD3737; }

/* 패널 맨 아래 고정. 스크롤되는 본문이 버튼 사이로 비치지 않게 불투명한 바로 둔다.
   .order-info-body 의 padding-bottom(74px) 이 이 자리를 비워 둔다. */
.reg-crud[b-9qak50ot2m] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 64px;
    display: flex; align-items: center; gap: 6px; padding: 0 10px;
    background: #fff; border-top: 1px solid #E0E0E0;
}
.reg-crud button[b-9qak50ot2m] { width: 97px; height: 44px; border: 0; color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.reg-crud button:disabled[b-9qak50ot2m] { opacity: .42; cursor: not-allowed; }
.reg-crud .new[b-9qak50ot2m] { background: var(--mes-new); }
.reg-crud .add[b-9qak50ot2m] { background: var(--mes-add); }
.reg-crud .mod[b-9qak50ot2m] { background: var(--mes-edit); }
.reg-crud .del[b-9qak50ot2m] { background: var(--mes-delete); }
/* "수주종료" · "종료취소" 는 다른 버튼(두 글자)보다 길어 16px 로는 두 줄로 접힌다.
   버튼 폭은 그대로 두고 이 버튼 글자만 줄여 한 줄에 담는다. */
.reg-crud .fin[b-9qak50ot2m] { background: #5C6B7A; width: 105px; font-size: 13px; padding: 0 4px; white-space: nowrap; }


/* ===== 코드 리스트 ===== */
.code-head[b-9qak50ot2m] {
    height: 48px; background: #87CEEB; border-bottom: 1px solid #73AAC9;
    padding: 0 13px; display: flex; align-items: center; font-size: 18px; font-weight: 700;
}
.code-body[b-9qak50ot2m] { position: absolute; left: 0; right: 0; top: 48px; bottom: 0; padding: 14px 12px; background: #fff; }
.code-title[b-9qak50ot2m] { font-size: 16px; margin-bottom: 9px; }
.code-search[b-9qak50ot2m] { display: flex; gap: 8px; align-items: center; }
.code-search label[b-9qak50ot2m] { font-size: 15px; }
.code-search input[b-9qak50ot2m] { height: 31px; flex: 1; border: 1px solid #B9B9B9; padding: 2px 7px; }
.code-search button[b-9qak50ot2m] { width: 78px; height: 31px; border: 0; background: #26A69A; color: #fff; font-size: 14px; cursor: pointer; }
.code-scroll[b-9qak50ot2m] { position: absolute; left: 12px; right: 12px; top: 114px; bottom: 13px; border: 1px solid #DDD; overflow: auto; background: #fff; }
.code-table[b-9qak50ot2m] { width: 100%; border-collapse: collapse; table-layout: fixed; }
.code-table th[b-9qak50ot2m] {
    position: sticky; top: 0; height: 38px; background: #264558; color: #fff;
    text-align: left; padding: 0 8px; font-size: 13px; font-weight: 700;
}
.code-table td[b-9qak50ot2m] { height: 28px; border-bottom: 1px solid #E0E0E0; padding: 0 8px; font-size: 13px; }
.code-table tbody tr[b-9qak50ot2m] { cursor: pointer; }
.code-table tbody tr:hover td[b-9qak50ot2m] { background: #E8F4F2; }
.code-table .w1[b-9qak50ot2m] { width: 90px; }
.code-table .w2[b-9qak50ot2m] { width: 110px; }
.code-table .w3[b-9qak50ot2m] { width: 118px; }
.code-table tbody tr.selected td[b-9qak50ot2m] { background: var(--mes-grid-selected); }

.code-table .right[b-9qak50ot2m] { text-align: right; }
/* /Components/Pages/OrderSchedule.razor.rz.scp.css */
/* 02-03 수주일정현황. html/02_수주관리/03_수주일정현황_v7스타일.html 이식. 좌우 2분할. */
.schedule-page[b-usbu9wxnxx] { position: relative; width: 100%; height: 100%; overflow: hidden; background: var(--mes-page); }

/* ===== 상단 요약 4칸 ===== */
.schedule-summary[b-usbu9wxnxx] {
    position: absolute; left: 0; right: 0; top: 0; height: 64px;
    background: #fff; border: 1px solid #8A8A8A;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 6px 8px;
}
.summary-item[b-usbu9wxnxx] {
    height: 50px; background: #fff; border: 1px solid #C9CED2;
    display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 0 14px;
}
.summary-label[b-usbu9wxnxx] { font-size: 13.5px; color: #4E555A; }
.summary-value[b-usbu9wxnxx] { font-size: 23px; font-weight: 700; min-width: 46px; text-align: right; }
.summary-all .summary-value[b-usbu9wxnxx] { color: #264558; }
.summary-done .summary-value[b-usbu9wxnxx] { color: #267D71; }
.summary-plan .summary-value[b-usbu9wxnxx] { color: #D68B00; }
.summary-delay .summary-value[b-usbu9wxnxx] { color: #D84B48; }
.summary-error[b-usbu9wxnxx] { color: #BD3737; font-size: 13px; padding: 0 12px; }


.schedule-columns[b-usbu9wxnxx] {
    position: absolute; left: 0; right: 0; top: 70px; bottom: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px; overflow: hidden;
}
.schedule-panel[b-usbu9wxnxx], .detail-panel-order[b-usbu9wxnxx] {
    position: relative; min-width: 0; background: #fff; border: 1px solid #8A8A8A; overflow: hidden;
}
.schedule-panel > .panel-head[b-usbu9wxnxx], .detail-panel-order > .panel-head[b-usbu9wxnxx] { position: absolute; left: 0; right: 0; top: 0; height: 42px; }

/* ===== 달력 툴바 ===== */
.schedule-toolbar[b-usbu9wxnxx] {
    position: absolute; left: 0; right: 0; top: 42px; height: 58px;
    background: #fff; border-bottom: 1px solid #BFC5CA;
    display: flex; align-items: center; padding: 0 10px;
}
.month-nav[b-usbu9wxnxx] { display: flex; align-items: center; gap: 5px; }
.month-nav button[b-usbu9wxnxx] {
    height: 32px; border: 1px solid #6F8091; background: #5C9ACA; color: #fff;
    font-size: 12.5px; font-weight: 700; padding: 0 10px; cursor: pointer;
}
.month-nav button.arrow[b-usbu9wxnxx] { width: 34px; padding: 0; font-size: 17px; }
.month-title[b-usbu9wxnxx] { position: absolute; left: 145px; right: 145px; text-align: center; font-size: 21px; font-weight: 700; pointer-events: none; }
.basis-box[b-usbu9wxnxx] { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.basis-label[b-usbu9wxnxx] { color: #505050; }
.basis-box label[b-usbu9wxnxx] {
    height: 29px; display: flex; align-items: center; gap: 4px; padding: 0 7px;
    border: 1px solid #8A8A8A; background: #fff; cursor: pointer; white-space: nowrap;
}
.basis-box label.active[b-usbu9wxnxx] { border-color: #2B70A5; background: #E7F2FA; color: #125681; font-weight: 700; }
.basis-box input[b-usbu9wxnxx] { accent-color: #0B78D0; }

/* ===== 달력 ===== */
.calendar-zone[b-usbu9wxnxx] { position: absolute; left: 0; right: 0; top: 100px; bottom: 0; background: #fff; padding: 0 6px 6px; }
.week-row[b-usbu9wxnxx] { height: 34px; display: grid; grid-template-columns: repeat(7, 1fr); }
.week-row div[b-usbu9wxnxx] {
    background: #264558; color: #fff; border-right: 1px solid #566D7B;
    display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
}
.week-row .sun[b-usbu9wxnxx] { color: #FFB8B8; }
.week-row .sat[b-usbu9wxnxx] { color: #A9C9FF; }

.cal-grid[b-usbu9wxnxx] {
    height: calc(100% - 34px); display: grid;
    grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(6, 1fr);
    border-left: 1px solid #C5C5C5; border-top: 1px solid #C5C5C5;
}
.day[b-usbu9wxnxx] {
    position: relative; border-right: 1px solid #C5C5C5; border-bottom: 1px solid #C5C5C5;
    background: #fff; padding: 4px 5px; min-height: 0; overflow: hidden; cursor: pointer;
}
.day.dim[b-usbu9wxnxx] { background: #ECECEC; cursor: default; }
.day.today[b-usbu9wxnxx] { background: #FFFDE4; }
.day.selected[b-usbu9wxnxx] { outline: 2px solid #26A69A; outline-offset: -2px; background: #F5FFFC; }
.day-no[b-usbu9wxnxx] { font-size: 12.5px; font-weight: 700; color: #333; line-height: 17px; }
.day.sun .day-no[b-usbu9wxnxx] { color: #E84545; }
.day.sat .day-no[b-usbu9wxnxx] { color: #226ED3; }
.day-events[b-usbu9wxnxx] { margin-top: 2px; display: flex; flex-direction: column; gap: 2px; }
.event[b-usbu9wxnxx] {
    height: 18px; display: flex; align-items: center; justify-content: space-between;
    padding: 0 5px; font-size: 10.5px; white-space: nowrap;
    border-left: 4px solid #607D8B; background: #EEF1F3; color: #30363A;
}
.event .count[b-usbu9wxnxx] { font-weight: 700; }
.event.plan[b-usbu9wxnxx] { border-left-color: #D99A20; background: #FFF6DE; }
.event.done[b-usbu9wxnxx] { border-left-color: #2B8A78; background: #E8F7F3; }
.event.delay[b-usbu9wxnxx] { border-left-color: #E45552; background: #FFE9E8; color: #B22E2B; }
.event.soon[b-usbu9wxnxx] { border-left-color: #F0A020; background: #FFF1D2; color: #9B6500; }

/* ===== 우측 상세 ===== */
.detail-table-wrap[b-usbu9wxnxx] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; }
.order-detail-table[b-usbu9wxnxx] { width: 100%; border-collapse: collapse; table-layout: fixed; }
.order-detail-table th[b-usbu9wxnxx] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: #264558; color: #fff;
    text-align: left; padding: 0 5px; font-size: 11.5px; font-weight: 700;
    border-right: 1px solid #3B596B; white-space: nowrap;
}
.order-detail-table td[b-usbu9wxnxx] {
    height: 29px; padding: 2px 5px; border-bottom: 1px solid #E0E0E0;
    font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.order-detail-table tbody tr[b-usbu9wxnxx] { cursor: pointer; }
.order-detail-table tbody tr:hover td[b-usbu9wxnxx] { background: #E8F4F2; }
.order-detail-table tr.selected td[b-usbu9wxnxx] { background: #B6DCD8; }
.order-detail-table .empty[b-usbu9wxnxx] { text-align: center; color: #777; padding: 24px; cursor: default; }

.c-no[b-usbu9wxnxx] { width: 128px; } .c-partner[b-usbu9wxnxx] { width: 86px; } .c-item[b-usbu9wxnxx] { width: 90px; }
.c-qty[b-usbu9wxnxx] { width: 52px; } .c-ordered[b-usbu9wxnxx] { width: 86px; } .c-due[b-usbu9wxnxx] { width: 86px; }
.c-prod[b-usbu9wxnxx] { width: 70px; } .c-deliv[b-usbu9wxnxx] { width: 70px; } .c-dday[b-usbu9wxnxx] { width: 62px; }

.center[b-usbu9wxnxx] { text-align: center; }
.right[b-usbu9wxnxx] { text-align: right; }
.status[b-usbu9wxnxx] {
    display: inline-block; min-width: 44px; text-align: center; padding: 1px 4px;
    border: 1px solid #BFC5CA; background: #F5F5F5; font-size: 10.5px;
}
.status.prod-wait[b-usbu9wxnxx] { color: #666; }
.status.prod-run[b-usbu9wxnxx] { color: #11699A; background: #E9F4FA; border-color: #9DC6DC; }
.status.done[b-usbu9wxnxx] { color: #24715F; background: #E8F7F3; border-color: #9FD4C7; }
.status.del-wait[b-usbu9wxnxx] { color: #A36B00; background: #FFF6DE; border-color: #E8C77C; }
.status.delay[b-usbu9wxnxx] { color: #B22E2B; background: #FFE9E8; border-color: #E4A09D; }
.dday[b-usbu9wxnxx] { font-weight: 700; }
.dday.soon[b-usbu9wxnxx] { color: #D27D00; }
.dday.delay[b-usbu9wxnxx] { color: #D43B38; }
.dday.ok[b-usbu9wxnxx] { color: #2B785E; }
/* /Components/Pages/PackerDefectHistory.razor.rz.scp.css */
/* 05-04 자동포앙기 불량이력관리 고유 값. 공통 골격은 wwwroot/quality-screen.css 참조. */
.rows-3[b-0kbds1xymw] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-code[b-0kbds1xymw] { width: 92px; } .c-num[b-0kbds1xymw] { width: 105px; } .c-small[b-0kbds1xymw] { width: 90px; }

.d-date[b-0kbds1xymw] { width: 105px; } .d-eq[b-0kbds1xymw] { width: 120px; } .d-order[b-0kbds1xymw] { width: 130px; }
.d-partner[b-0kbds1xymw] { width: 110px; } .d-item[b-0kbds1xymw] { width: 120px; } .d-name[b-0kbds1xymw] { width: 110px; }
.d-small[b-0kbds1xymw] { width: 95px; }
/* /Components/Pages/PackerOutput.razor.rz.scp.css */
/* 06-04 자동포앙기 생산량 관리 고유 값. 공통 골격은 wwwroot/equipment-screen.css 참조. */
.rows-3[b-8zh8o8rqg9] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-date[b-8zh8o8rqg9] { width: 130px; } .c-code[b-8zh8o8rqg9] { width: 115px; } .c-name[b-8zh8o8rqg9] { width: 165px; }
.c-item[b-8zh8o8rqg9] { width: 160px; } .c-qty[b-8zh8o8rqg9] { width: 130px; } .c-cum[b-8zh8o8rqg9] { width: 140px; }
.c-last[b-8zh8o8rqg9] { width: 180px; } .c-state[b-8zh8o8rqg9] { width: 120px; }

.panel-head .load-error[b-8zh8o8rqg9] { margin-left: 10px; font-size: 13px; font-weight: 700; color: #FFD2CE; }
/* /Components/Pages/PartnerCode.razor.rz.scp.css */
/* 01-01 거래처코드 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.lbl-name[b-zz5vjbmunq] { left: 30px; }
.lbl-bizno[b-zz5vjbmunq] { left: 317px; }
.lbl-address[b-zz5vjbmunq] { left: 622px; }
.search-name[b-zz5vjbmunq] { left: 107px; width: 180px; }
.search-bizno[b-zz5vjbmunq] { left: 410px; width: 180px; }
.search-address[b-zz5vjbmunq] { left: 667px; width: 360px; }

.data-table[b-zz5vjbmunq] { min-width: 1900px; width: 1900px; }

/* Designer.cs 컬럼 폭 */
.c-code[b-zz5vjbmunq] { width: 100px; } .c-name[b-zz5vjbmunq] { width: 200px; } .c-ceo[b-zz5vjbmunq] { width: 100px; }
.c-bizno[b-zz5vjbmunq] { width: 150px; } .c-tel[b-zz5vjbmunq] { width: 150px; } .c-address[b-zz5vjbmunq] { width: 200px; }
.c-person[b-zz5vjbmunq] { width: 100px; } .c-cell[b-zz5vjbmunq] { width: 150px; } .c-email[b-zz5vjbmunq] { width: 200px; }
.c-desc[b-zz5vjbmunq] { width: 200px; } .c-use[b-zz5vjbmunq] { width: 100px; } .c-created[b-zz5vjbmunq] { width: 100px; }
.c-createusr[b-zz5vjbmunq] { width: 100px; } .c-updated[b-zz5vjbmunq] { width: 100px; } .c-updateusr[b-zz5vjbmunq] { width: 100px; }

/* 상세 폼 : 좌표는 42px 헤더 기준 */
.l-code[b-zz5vjbmunq] { top: 14px; } .f-code[b-zz5vjbmunq] { top: 14px; }
.l-name[b-zz5vjbmunq] { top: 52px; } .f-name[b-zz5vjbmunq] { top: 52px; }
.l-ceo[b-zz5vjbmunq] { top: 93px; } .f-ceo[b-zz5vjbmunq] { top: 93px; }
.l-type[b-zz5vjbmunq] { top: 135px; } .f-type[b-zz5vjbmunq] { left: 120px; top: 135px; gap: 11px; }
.l-bizno[b-zz5vjbmunq] { top: 176px; } .f-bizno[b-zz5vjbmunq] { top: 176px; }
.l-tel[b-zz5vjbmunq] { top: 221px; } .f-tel[b-zz5vjbmunq] { top: 221px; }
.l-address[b-zz5vjbmunq] { top: 267px; } .f-address[b-zz5vjbmunq] { top: 267px; }
.l-person[b-zz5vjbmunq] { top: 364px; } .f-person[b-zz5vjbmunq] { top: 364px; }
.l-cell[b-zz5vjbmunq] { top: 408px; } .f-cell[b-zz5vjbmunq] { top: 408px; }
.l-email[b-zz5vjbmunq] { top: 452px; } .f-email[b-zz5vjbmunq] { top: 452px; }
.l-desc[b-zz5vjbmunq] { top: 494px; } .f-desc[b-zz5vjbmunq] { top: 494px; }
.l-use[b-zz5vjbmunq] { top: 591px; } .f-use[b-zz5vjbmunq] { left: 110px; top: 591px; gap: 17px; }
.f-error[b-zz5vjbmunq] { top: 626px; }
/* /Components/Pages/ProcessCode.razor.rz.scp.css */
/* 01-03 공정코드 고유 좌표. 공통 골격은 wwwroot/mes-screen.css 참조. */
.screen-page[b-3buot0npan] {
    /* 상세 패널이 559px 로 더 넓다. 목록 오른쪽 여백(--list-right)은 .work-area.split 이 이 값에서 계산한다. */
    --detail-width: 559px;
}

.q1l[b-3buot0npan] { left: 30px; }
.q1[b-3buot0npan] { left: 107px; width: 180px; }

.data-table[b-3buot0npan] { min-width: 1320px; width: 1320px; }

.c-code[b-3buot0npan] { width: 90px; } .c-name[b-3buot0npan] { width: 100px; } .c-order[b-3buot0npan] { width: 90px; }
.c-class[b-3buot0npan] { width: 125px; } .c-defect[b-3buot0npan] { width: 105px; } .c-std[b-3buot0npan] { width: 110px; }
.c-stdnote[b-3buot0npan] { width: 170px; } .c-use[b-3buot0npan] { width: 90px; }
.c-createusr[b-3buot0npan] { width: 90px; } .c-created[b-3buot0npan] { width: 150px; }
.c-updateusr[b-3buot0npan] { width: 90px; } .c-updated[b-3buot0npan] { width: 150px; }

/* 상세 폼 : 세로로 셋으로 나눈다. 위쪽 고정 좌표 블록(260px) → 작업표준 상자(남는 높이 전부) → 바닥 블록(사용여부·오류·버튼).
   좌우 여백은 30px 로 같다(사용자 요청). 라벨은 105px 오른쪽 정렬이라 가장 긴 '작업표준서'가 30px 께서 시작한다. */
.detail-form[b-3buot0npan] { display: flex; flex-direction: column; }
.form-top[b-3buot0npan] { position: relative; flex: 0 0 260px; }
.form-bottom[b-3buot0npan] { flex: 0 0 auto; padding: 10px 0 18px; }

.detail-label[b-3buot0npan] { left: 0; width: 105px; }
.detail-input[b-3buot0npan], .code-label[b-3buot0npan] { left: 120px; width: 260px; }

.l-code[b-3buot0npan] { top: 16px; } .f-code[b-3buot0npan] { top: 16px; }
.l-name[b-3buot0npan] { top: 56px; } .f-name[b-3buot0npan] { top: 56px; }
.l-order[b-3buot0npan] { top: 96px; } .f-order[b-3buot0npan] { top: 96px; }
.l-class[b-3buot0npan] { top: 140px; } .f-class[b-3buot0npan] { left: 119px; top: 140px; gap: 28px; }
.l-defect[b-3buot0npan] { top: 182px; } .f-defect[b-3buot0npan] { left: 119px; top: 182px; gap: 26px; }
.l-std[b-3buot0npan] { top: 226px; }

/* '작업표준 이미지 등록하기' 는 숨긴 파일 입력(.std-file)을 여는 label 이다. */
.std-btn[b-3buot0npan] {
    position: absolute; right: 30px; top: 226px; height: 31px; padding: 0 14px;
    display: flex; align-items: center;
    border: 0; background: #5D9EA0; color: #fff; font-size: 14px; cursor: pointer;
}
[b-3buot0npan] .std-file { display: none; }   /* InputFile 은 자식 컴포넌트라 ::deep 이 있어야 스코프 CSS 가 닿는다 */
.std-box[b-3buot0npan] {
    flex: 1 1 auto; min-height: 110px; margin: 0 30px;
    border: 1px solid #8A8A8A; display: flex; flex-direction: column;
}
.std-cap[b-3buot0npan] { flex: 0 0 32px; background: #98C097; display: flex; align-items: center; padding-left: 12px; font-size: 15px; }
.std-img[b-3buot0npan] {
    flex: 1 1 auto; min-height: 48px; margin: 10px; border: 1px solid #8A8A8A; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    color: #B4C1C4; font: 700 56px Arial;
}
.std-note[b-3buot0npan] { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 0 10px 10px; }
.std-note input[b-3buot0npan] { height: 26px; flex: 1; border: 1px solid #cfcfcf; }
.std-file-name[b-3buot0npan] {
    margin-left: auto; margin-right: 8px; max-width: 60%;
    font-size: 12px; color: #1F3D1F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.std-remove[b-3buot0npan] {
    flex: 0 0 22px; width: 22px; height: 22px; margin-right: 8px; padding: 0; border: 0;
    background: var(--mes-delete); color: #fff; font-size: 12px; line-height: 22px; cursor: pointer;
}
.std-remove:disabled[b-3buot0npan] { opacity: .42; cursor: not-allowed; }
.std-btn.disabled[b-3buot0npan] { opacity: .42; cursor: not-allowed; pointer-events: none; }
.std-img img[b-3buot0npan] { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }

/* 바닥 블록 : 사용여부 행 8px 아래에 버튼. 오류문구는 있을 때만 그 사이에 끼어든다.
   공통 CSS 의 절대좌표(.crud left/bottom, .validation-summary left/right)를 흐름 배치로 되돌린다. */
.use-row[b-3buot0npan] { position: relative; height: 27px; }
.f-use[b-3buot0npan] { left: 118px; top: 0; gap: 17px; }
.f-error[b-3buot0npan] { position: static; margin: 6px 20px 0 120px; }
.crud[b-3buot0npan] { position: static; margin: 8px 0 0 30px; }
/* /Components/Pages/ProductionResult.razor.rz.scp.css */
/* 03-03 생산실적등록. html/03_생산관리/03_생산실적등록_v7스타일.html 이식. 좌 31.5% / 우 68.5%. */
.result-page[b-b2ccuwytiw] { width: 100%; height: 100%; display: grid; grid-template-columns: 31.5% 68.5%; gap: 3px; }

.panel[b-b2ccuwytiw] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-b2ccuwytiw] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-b2ccuwytiw] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-b2ccuwytiw] { width: 20px; height: 20px; }

/* ===== 좌 : 작업 일정 ===== */
.left[b-b2ccuwytiw] { display: flex; flex-direction: column; min-width: 0; }
.schedule-toolbar[b-b2ccuwytiw] { height: 54px; display: flex; align-items: center; padding: 0 13px; gap: 7px; border-bottom: 1px solid #A0A0A0; }
.week-btn[b-b2ccuwytiw] { height: 31px; min-width: 48px; border: 1px solid #696969; background: #718092; color: #fff; font-weight: 700; cursor: pointer; }
.week-num[b-b2ccuwytiw] { height: 31px; min-width: 82px; border: 1px solid #696969; background: #777; color: #fff; font-weight: 700; cursor: pointer; }
.base-radio[b-b2ccuwytiw] { margin-left: auto; display: flex; gap: 10px; font-size: 13.5px; }
.base-radio label[b-b2ccuwytiw] { display: flex; align-items: center; gap: 3px; white-space: nowrap; cursor: pointer; }
.base-radio input[b-b2ccuwytiw] { accent-color: #0B78D0; }

.schedule-table[b-b2ccuwytiw] { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 15px; }
.schedule-table th[b-b2ccuwytiw] { height: 40px; background: #4358BB; color: #fff; font-size: 16px; font-weight: 400; border-right: 1px solid #8790C4; }
.schedule-table td[b-b2ccuwytiw] { height: 42px; border-bottom: 1px solid #C4C4C4; border-right: 1px solid #C4C4C4; padding: 4px 7px; }
.schedule-table tbody tr[b-b2ccuwytiw] { cursor: pointer; }
.schedule-table tbody tr:hover td[b-b2ccuwytiw] { background: #E5F3F1; }
.schedule-table tr.selected td[b-b2ccuwytiw] { background: #CBD3F0; }
.schedule-table tr.other td[b-b2ccuwytiw] { background: #D9E4E8; cursor: default; }
.dow[b-b2ccuwytiw] { width: 64px; text-align: center; font-size: 17px; }
.date[b-b2ccuwytiw] { width: 120px; }
.donecol[b-b2ccuwytiw] { width: 70px; text-align: center; }
.sat[b-b2ccuwytiw] { color: #007DEB; }
.sun[b-b2ccuwytiw] { color: #F22; }

/* ===== 우 ===== */
.right[b-b2ccuwytiw] { display: flex; flex-direction: column; gap: 3px; min-width: 0; min-height: 0; overflow: hidden; }
.order-panel[b-b2ccuwytiw], .process-panel[b-b2ccuwytiw], .bottom-panel[b-b2ccuwytiw] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.order-panel[b-b2ccuwytiw] { flex: 0 0 184px; }
.order-panel.empty-pick[b-b2ccuwytiw] { display: flex; align-items: center; justify-content: center; color: #777; font-size: 15px; }
.order-panel > .panel-head[b-b2ccuwytiw] { position: absolute; left: 0; right: 0; top: 0; }
.order-no[b-b2ccuwytiw] { margin-left: auto; margin-right: 12px; color: #00AEEF; font-size: 17px; font-weight: 700; }
.order-grid[b-b2ccuwytiw] {
    position: absolute; left: 10px; right: 10px; top: 49px; bottom: 7px;
    display: grid; grid-template-columns: 84px 1fr 78px 1.1fr 78px 150px;
    grid-template-rows: 28px 28px 48px; column-gap: 8px; row-gap: 6px; align-items: center;
}
.olabel[b-b2ccuwytiw] { text-align: right; font-size: 14px; white-space: nowrap; }
.field[b-b2ccuwytiw] {
    height: 28px; padding: 3px 6px; background: #E7E7E7; border: 1px solid #C6C6C6;
    color: #111; font-size: 14px; display: flex; align-items: center; overflow: hidden;
}
.note[b-b2ccuwytiw] { height: 48px; align-items: flex-start; padding-top: 6px; }
.row2[b-b2ccuwytiw] { grid-row: 2; }
.extra-pair[b-b2ccuwytiw] { grid-row: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; height: 28px; }
.extra-pair .field[b-b2ccuwytiw] { min-width: 0; }
.note-row[b-b2ccuwytiw] {
    grid-column: 1 / 7; grid-row: 3; display: grid;
    grid-template-columns: 84px minmax(0,1fr) 128px minmax(0,1fr); column-gap: 8px; align-items: start;
}
.note-row .olabel[b-b2ccuwytiw] { padding-top: 4px; line-height: 20px; }
.note-row .field[b-b2ccuwytiw] { width: 100%; }

.process-zone[b-b2ccuwytiw] { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0,1fr) 140px; gap: 3px; align-items: start; }
.process-panel > .panel-head[b-b2ccuwytiw] { position: relative; }
.process-body[b-b2ccuwytiw] {
    display: grid; grid-template-columns: repeat(6, minmax(118px, 1fr)); grid-auto-rows: 136px;
    gap: 8px; align-items: start; align-content: start;
    min-width: 0; max-height: 280px; overflow-y: auto; overflow-x: hidden; padding: 10px;
}
.proc-card[b-b2ccuwytiw] {
    width: 100%; min-width: 118px; height: 136px; border: 8px solid #26A69A; background: #fff;
    display: grid; grid-template-rows: 42px 40px 1fr;
}
.proc-card.done[b-b2ccuwytiw] { border-color: #4B2E83; }
.proc-card .pname[b-b2ccuwytiw] { background: #4358BB; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.proc-card .pdate[b-b2ccuwytiw] { display: flex; align-items: center; justify-content: center; font-size: 15px; }
.proc-card .pstate[b-b2ccuwytiw] { display: flex; align-items: center; justify-content: center; color: #fff; background: #006C61; font-size: 14px; }
.proc-card.done .pstate[b-b2ccuwytiw] { background: #1B0752; }

.progress-panel[b-b2ccuwytiw] { height: 198px; border: 1px solid #858585; background: #fff; display: flex; flex-direction: column; overflow: hidden; }
.progress-panel .panel-head[b-b2ccuwytiw] { flex: 0 0 42px; justify-content: center; padding-left: 0; font-size: 15px; }
.progress-content[b-b2ccuwytiw] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.progress-content .num[b-b2ccuwytiw] { font-size: 34px; font-weight: 700; line-height: 1; }
.defect-view[b-b2ccuwytiw] { width: 124px; height: 36px; border: 1px solid #9B3434; background: #FF888A; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }

/* ===== 하단 2분할 ===== */
.bottom-panel[b-b2ccuwytiw] { flex: 1 1 auto; min-height: 485px; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; border: 0; background: transparent; }
.result-box[b-b2ccuwytiw], .complete-box[b-b2ccuwytiw] {
    border: 1px solid #858585; background: #fff; position: relative; overflow: hidden;
    display: flex; flex-direction: column; min-height: 0;
}
.sub-head[b-b2ccuwytiw] { height: 42px; flex: 0 0 42px; display: flex; align-items: center; padding: 0 12px; font-size: 18px; font-weight: 700; }
.result-box .sub-head[b-b2ccuwytiw] { background: #87CEEB; }
.complete-box .sub-head[b-b2ccuwytiw] { background: #0B3C6B; color: #fff; }

.form-area[b-b2ccuwytiw], .complete-form[b-b2ccuwytiw] { height: 252px; flex: 0 0 252px; padding: 13px 18px 0; }
.form-row[b-b2ccuwytiw] { display: grid; grid-template-columns: 105px 1fr; gap: 10px; align-items: center; margin-bottom: 9px; }
.form-row > label[b-b2ccuwytiw] { text-align: right; font-size: 14.5px; }
.input[b-b2ccuwytiw] {
    height: 29px; background: #fff; padding: 3px 7px; font-size: 14px;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.input.read[b-b2ccuwytiw] { background: #E7E7E7; color: #666; border: 1px solid #C9C9C9; box-shadow: none; }
.inline[b-b2ccuwytiw] { display: flex; gap: 8px; align-items: center; }
.std-btn[b-b2ccuwytiw] { height: 29px; width: 138px; border: 0; background: #5D9EA0; color: #fff; cursor: pointer; }

.qty-grid[b-b2ccuwytiw] { display: grid; grid-template-columns: 1fr 1fr 96px; gap: 9px; margin-top: 22px; }
.qty-box[b-b2ccuwytiw], .stat[b-b2ccuwytiw], .defect-btn[b-b2ccuwytiw] { height: 72px; }
.qty-box[b-b2ccuwytiw], .stat[b-b2ccuwytiw] { border: 1px solid #D2D2D2; }
.qty-box .qh[b-b2ccuwytiw], .stat .sh[b-b2ccuwytiw] { height: 28px; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.qty-box.good .qh[b-b2ccuwytiw], .stat.good .sh[b-b2ccuwytiw] { background: #078B86; }
.qty-box.bad .qh[b-b2ccuwytiw] { background: #FF430C; }
.stat.bad .sh[b-b2ccuwytiw] { background: #ED4A1B; }
.stat.rate .sh[b-b2ccuwytiw] { background: #2B73D2; }
.qty-box .qv[b-b2ccuwytiw], .stat .sv[b-b2ccuwytiw] { height: 42px; display: flex; align-items: center; justify-content: center; font-size: 25px; background: #fff; }
.stat .sv[b-b2ccuwytiw] { font-weight: 700; }
.qty-box.bad .qv[b-b2ccuwytiw], .stat.bad .sv[b-b2ccuwytiw] { background: #E4E4E4; }
.defect-btn[b-b2ccuwytiw] { border: 1px solid #9B3434; background: #FF7C80; color: #7A0000; font-weight: 700; font-size: 16px; cursor: pointer; }

/* margin-top: auto — 세로 flex 인 박스에서 버튼 줄을 바닥으로 민다.
   위쪽 폼이 고정 높이라 이게 없으면 아래에 빈 공간이 그대로 남는다. */
.action-row[b-b2ccuwytiw], .complete-actions[b-b2ccuwytiw] {
    margin: 12px 18px 18px; margin-top: auto;
    display: grid; gap: 7px;
}
.action-row[b-b2ccuwytiw] { grid-template-columns: 1fr 120px 85px; }
.complete-actions[b-b2ccuwytiw] { grid-template-columns: 1fr 140px; }
.action-row button[b-b2ccuwytiw], .complete-actions button[b-b2ccuwytiw] { height: 48px; border: 1px solid #505050; font-size: 16px; font-weight: 700; cursor: pointer; }
.action-row button:disabled[b-b2ccuwytiw], .complete-actions button:disabled[b-b2ccuwytiw] { opacity: .42; cursor: not-allowed; }
.complete-proc[b-b2ccuwytiw], .prod-complete[b-b2ccuwytiw] { background: #0067A0; color: #fff; }
.skip-proc[b-b2ccuwytiw] { background: #888; color: #222; }
.delete-proc[b-b2ccuwytiw] { background: #777; color: #222; }
.cancel[b-b2ccuwytiw] { background: #E56D72; color: #4E0000; }

.complete-grid[b-b2ccuwytiw] { display: grid; grid-template-columns: 110px 1fr; gap: 9px 10px; align-items: center; }
.complete-grid label[b-b2ccuwytiw] { text-align: right; font-size: 14.5px; }
.stats[b-b2ccuwytiw] { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 9px; margin-top: 18px; }

.notice-bar[b-b2ccuwytiw] { flex: 0 0 auto; padding: 8px 12px; background: #fff; border: 1px solid #C8CDD1; font-size: 13px; color: #1B6B5C; }

/* ===== 3-C 에서 추가 ===== */
/* 공정 카드를 눌러 고른다. 상태별 색과 선택 테두리. */
.proc-card[b-b2ccuwytiw] { cursor: pointer; }
.proc-card.skip[b-b2ccuwytiw] { border-color: #8A8A8A; }
.proc-card.skip .pstate[b-b2ccuwytiw] { background: #6E7A86; }
.proc-card.picked[b-b2ccuwytiw] { outline: 3px solid var(--mes-orange); outline-offset: -3px; }
.panel-head .head-hint[b-b2ccuwytiw] { margin-left: auto; padding-right: 10px; font-size: 12px; font-weight: 400; color: #C9D3DC; }

/* 작업표준 이미지 미리보기 */
/* 작업표준서 창 — 원본 PC앱의 별도 창(1536×832)에 맞춘 크기. 화면이 작으면 화면에 맞춘다. */
.std-modal[b-b2ccuwytiw] {
    position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, .55);
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
.std-window[b-b2ccuwytiw] {
    width: min(1536px, 94vw); height: min(832px, 90vh);
    background: #fff; border: 1px solid #5A5A5A; box-shadow: 0 10px 40px rgba(0, 0, 0, .45);
    display: flex; flex-direction: column; overflow: hidden;
}
.std-foot[b-b2ccuwytiw] { flex: 0 0 26px; display: flex; align-items: center; justify-content: center;
            background: #F4F6F8; border-top: 1px solid #DDE1E6; font-size: 12px; color: #6B7280; }
.std-bar[b-b2ccuwytiw] {
    flex: 0 0 38px; display: flex; align-items: center; justify-content: space-between;
    padding: 0 10px; background: #EEF3F6; border-bottom: 1px solid #C9C9C9;
    font-size: 13.5px; font-weight: 700; color: #24405A;
}
.std-close[b-b2ccuwytiw] { height: 24px; padding: 0 10px; border: 1px solid #9AA7B1; background: #fff; cursor: pointer; font-size: 12.5px; }
.std-canvas[b-b2ccuwytiw] {
    flex: 1 1 auto; min-height: 0; overflow: auto; background: #FAFAFA;
    display: flex; align-items: center; justify-content: center; padding: 8px;
}
.std-canvas img[b-b2ccuwytiw] { max-width: 100%; max-height: 100%; object-fit: contain; }

/* 3-E 에서 연결할 영역 안내 */
.stage-note[b-b2ccuwytiw] { padding: 6px 10px 0; font-size: 12px; color: #7A828A; }
.notice-bar.error[b-b2ccuwytiw] { color: #BD3737; }

/* 공정이 11개라 카드가 두 줄이 된다. 카드를 낮춰 아래 '공정 실적 등록' 버튼이 화면에 남게 한다. */
.proc-card[b-b2ccuwytiw] { height: 84px; min-width: 104px; border-width: 4px; grid-template-rows: 32px 22px 1fr; }
.proc-card .pname[b-b2ccuwytiw] { font-size: 15px; }
.proc-card .pdate[b-b2ccuwytiw] { font-size: 13px; }
.proc-card .pstate[b-b2ccuwytiw] { font-size: 12.5px; }
.process-body[b-b2ccuwytiw] { grid-template-columns: repeat(6, minmax(104px, 1fr)); grid-auto-rows: 84px; gap: 6px; max-height: 186px; padding: 8px; }
.progress-panel[b-b2ccuwytiw] { height: 228px; }
.order-panel[b-b2ccuwytiw] { flex: 0 0 168px; }

/* 입력란이 7줄로 늘어 폼이 커졌다. 줄 간격과 높이를 줄이고 작업자2·3 은 한 줄에 둔다. */
.form-area[b-b2ccuwytiw], .complete-form[b-b2ccuwytiw] { height: 280px; flex: 0 0 280px; }
.form-row[b-b2ccuwytiw] { margin-bottom: 5px; }
.input[b-b2ccuwytiw], .std-btn[b-b2ccuwytiw] { height: 26px; }
.form-row.pair .inline input[b-b2ccuwytiw] { flex: 1; min-width: 0; }
.qty-grid[b-b2ccuwytiw] { margin-top: 12px; }
.qty-box[b-b2ccuwytiw], .stat[b-b2ccuwytiw], .defect-btn[b-b2ccuwytiw] { height: 64px; }
.qty-box .qv[b-b2ccuwytiw], .stat .sv[b-b2ccuwytiw] { height: 36px; font-size: 22px; }
.stats[b-b2ccuwytiw] { margin-top: 12px; }
.bottom-panel[b-b2ccuwytiw] { min-height: 400px; }

/* 화면이 낮으면 오른쪽 열을 스크롤해서라도 버튼에 닿게 한다. */
.right[b-b2ccuwytiw] { overflow-y: auto; }

/* 완료 열 : ✓ 생산완료 확정 · ◐ 전 공정 완료(확정 전) */
.donecol.fin[b-b2ccuwytiw] { color: #1B0752; font-weight: 700; }
.donecol.allstep[b-b2ccuwytiw] { color: var(--mes-orange); font-weight: 700; font-size: 17px; }
/* /Components/Pages/ProductionStatus.razor.rz.scp.css */
/* 03-02 생산진행목록. html/03_생산관리/02_생산진행목록_v7스타일.html 이식. */
.production-status-page[b-88ies074bm] { position: relative; width: 100%; height: 100%; overflow: hidden; }

.panel-head[b-88ies074bm] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-88ies074bm] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-88ies074bm] { width: 20px; height: 20px; }

.search-section[b-88ies074bm] { position: absolute; left: 0; right: 0; top: 0; height: 106px; background: #fff; overflow: hidden; }
.search-fields[b-88ies074bm] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px; background: #fff;
    display: flex; align-items: center; gap: 20px; padding: 0 154px 0 20px;
}
.search-group[b-88ies074bm] { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.search-group label[b-88ies074bm] { font-size: 15.5px; }
.search-input[b-88ies074bm] { height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4; background: #fff; outline: none; font-size: 15px; }
.search-input.date[b-88ies074bm] { width: 145px; }
.search-input.normal[b-88ies074bm] { width: 180px; }
.search-btn[b-88ies074bm] {
    position: absolute; right: 7px; top: 7px; width: 140px; height: 49px;
    border: 0; background: var(--mes-new); color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 13px;
    font-size: 16px; font-weight: 700; cursor: pointer;
}
.search-btn svg[b-88ies074bm] { width: 24px; height: 24px; }

.list-panel[b-88ies074bm] {
    position: absolute; left: 0; right: 0; top: 112px; bottom: 0;
    background: #fff; border: 1px solid #8A8A8A; overflow: hidden;
}
.table-wrap[b-88ies074bm] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; }
.data-table[b-88ies074bm] { border-collapse: collapse; table-layout: fixed; min-width: 1500px; width: 100%; background: #fff; font-size: 13.33px; }
.data-table th[b-88ies074bm] {
    position: sticky; top: 0; z-index: 2; height: 38px; padding: 0 8px;
    background: var(--mes-grid-head); color: #fff; font-weight: 700; text-align: left;
    white-space: nowrap; border-bottom: 1px solid var(--mes-grid-line);
}
.data-table td[b-88ies074bm] {
    height: 31px; padding: 3px 8px; background: #fff; color: #000;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    border-bottom: 1px solid var(--mes-grid-line);
}
.data-table tbody tr[b-88ies074bm] { cursor: pointer; }
.data-table tbody tr:hover td[b-88ies074bm] { background: #E8F4F2; }
.data-table tbody tr.selected td[b-88ies074bm], .data-table tbody tr.selected:hover td[b-88ies074bm] { background: var(--mes-grid-selected); }
.data-table .empty[b-88ies074bm] { text-align: center; color: #777; padding: 26px; cursor: default; }
.center[b-88ies074bm] { text-align: center; }
.right[b-88ies074bm] { text-align: right; }

.c-no[b-88ies074bm] { width: 150px; } .c-partner[b-88ies074bm] { width: 120px; } .c-item[b-88ies074bm] { width: 140px; }
.c-qty[b-88ies074bm] { width: 100px; } .c-ordered[b-88ies074bm] { width: 112px; } .c-due[b-88ies074bm] { width: 112px; }
.c-proc[b-88ies074bm] { width: 120px; } .c-rate[b-88ies074bm] { width: 135px; } .c-state[b-88ies074bm] { width: 100px; }
.c-done[b-88ies074bm] { width: 95px; } .c-def[b-88ies074bm] { width: 90px; } .c-last[b-88ies074bm] { width: 140px; } .c-note[b-88ies074bm] { width: 170px; }

.progress[b-88ies074bm] { height: 17px; background: #EEF1F3; border: 1px solid #CCD2D6; position: relative; }
.progress i[b-88ies074bm] { display: block; height: 100%; background: #26A69A; }
.progress span[b-88ies074bm] { position: absolute; left: 0; right: 0; top: -1px; text-align: center; font-size: 11px; line-height: 16px; }

.status[b-88ies074bm] { display: inline-block; min-width: 52px; padding: 3px 7px; text-align: center; border: 1px solid #C6CCD1; font-size: 12px; }
.status.plan[b-88ies074bm] { background: #EEF1F4; }
.status.run[b-88ies074bm] { background: #D7F0EC; border-color: #8FCFC6; }
.status.done[b-88ies074bm] { background: #DFF0D8; border-color: #A5C79A; }
.status.warn[b-88ies074bm] { background: #FCEFD5; border-color: #E6BE73; }
.status.late[b-88ies074bm] { background: #FBE0DF; border-color: #E3A19E; color: #B22924; font-weight: 700; }
/* /Components/Pages/RoleManagement.razor.rz.scp.css */
/* 08-02 권한관리. html/08_시스템/02_권한관리_원본동일_v7스타일.html 이식.
   조회조건 106px + 본문(목록 / 우측 431px : 상세 273px + 기능리스트 + 버튼 63px). */
.sys-page[b-bnfroi8lo3] { height: 100%; display: grid; grid-template-rows: 106px minmax(0, 1fr); gap: 3px; }

.panel[b-bnfroi8lo3] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-bnfroi8lo3] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; gap: 8px; padding: 0 8px; font-size: 18px; font-weight: 700;
}
.panel-head .icon[b-bnfroi8lo3] { color: var(--mes-orange); }
.count[b-bnfroi8lo3] { margin-left: auto; font-size: 13px; font-weight: 500; color: #dce4e9; }

.search-fields[b-bnfroi8lo3] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px;
    display: flex; align-items: center; gap: 10px; padding: 0 16px;
}
.search-fields label[b-bnfroi8lo3] { font-size: 15.5px; white-space: nowrap; }
.search-fields input[b-bnfroi8lo3], .search-fields select[b-bnfroi8lo3] {
    height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4; background: #fff; outline: none; font-size: 15px;
}
.authid[b-bnfroi8lo3], .authname[b-bnfroi8lo3] { width: 170px; }
.use-search[b-bnfroi8lo3] { width: 130px; }
.search-btn[b-bnfroi8lo3] {
    margin-left: 8px; height: 32px; width: 130px; border: 0;
    background: var(--mes-new); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
}

/* 우측 폭은 --right-w 로 잡는다. split-pane.js 가 드래그 중에 이 값만 바꾼다.
   가운데 7px 이 분할선이고, 예전의 3px gap 자리를 대신한다. */
.work[b-bnfroi8lo3] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7px var(--right-w, 431px);
    gap: 0; min-height: 0;
}

.splitter[b-bnfroi8lo3] { position: relative; cursor: col-resize; touch-action: none; background: transparent; }
.splitter[b-bnfroi8lo3]::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: 2px; right: 2px;
    background: #C3CCD3;
}
.splitter:hover[b-bnfroi8lo3]::before, .splitter.dragging[b-bnfroi8lo3]::before { background: var(--mes-orange); }

/* overscroll-behavior-x : 그리드 끝까지 스크롤해도 문서 전체가 따라 움직이지 않는다.
   좌우 이동은 이 영역 안에서만 일어난다. */
.grid-wrap[b-bnfroi8lo3] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0;
    overflow: auto; scrollbar-gutter: stable; overscroll-behavior-x: contain;
}
.tbl[b-bnfroi8lo3] { border-collapse: collapse; table-layout: fixed; width: max-content; min-width: 100%; font-size: 14px; }
.tbl th[b-bnfroi8lo3] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 7px; white-space: nowrap;
    border-right: 1px solid #527087; border-bottom: 1px solid var(--mes-grid-line);
}
.tbl td[b-bnfroi8lo3] {
    height: 37px; border-right: 1px solid #D1D1D1; border-bottom: 1px solid #E0E0E0;
    padding: 4px 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr[b-bnfroi8lo3] { cursor: pointer; }
.tbl tbody tr:hover td[b-bnfroi8lo3] { background: #E8F4F2; }
.tbl tbody tr.selected td[b-bnfroi8lo3] { background: var(--mes-grid-selected); }
.tbl tbody tr.no-row td[b-bnfroi8lo3] { color: #777; background: #F3F3F3; cursor: default; }
.center[b-bnfroi8lo3] { text-align: center; }

.w130[b-bnfroi8lo3] { width: 130px; } .w160[b-bnfroi8lo3] { width: 160px; } .w180[b-bnfroi8lo3] { width: 180px; }

/* ===== 우측 : 상세 273px / 기능 리스트 / 버튼 63px =====
   상세 정보와 기능 리스트를 각각 테두리 있는 별도 상자로 둔다.
   버튼은 흐름에서 빼내 패널 맨 아래에 고정한다. 안내 문구가 떠도 밀리지 않는다. */
.auth-right[b-bnfroi8lo3] {
    background: var(--mes-page); position: relative;
    display: grid; grid-template-rows: 273px minmax(0, 1fr) auto;
    gap: 3px; padding-bottom: 63px;
    min-height: 0; overflow: hidden;
}
.auth-detail[b-bnfroi8lo3] { position: relative; background: #fff; border: 1px solid #858585; overflow: hidden; }
.form-body[b-bnfroi8lo3] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; padding-top: 10px; }
.form-row[b-bnfroi8lo3] { min-height: 41px; display: grid; grid-template-columns: 121px 1fr; align-items: center; padding-right: 14px; }
.form-row > label[b-bnfroi8lo3] { text-align: right; padding-right: 12px; font-size: 14.5px; }
.form-row input[type="text"][b-bnfroi8lo3], .form-row input:not([type])[b-bnfroi8lo3] {
    height: 29px; padding: 3px 7px; background: #fff; font-size: 14.5px; outline: none;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.form-row input:disabled[b-bnfroi8lo3] { background: #E7E7E7; color: #666; }
.form-row input[type="checkbox"][b-bnfroi8lo3] { width: 16px; height: 16px; accent-color: #0B78D0; }
.sys-row[b-bnfroi8lo3] { border-top: 1px dashed #DDD; margin-top: 6px; padding-top: 6px; }

.func-panel[b-bnfroi8lo3] { position: relative; overflow: hidden; background: #fff; border: 1px solid #858585; }
.func-head[b-bnfroi8lo3] { margin: 0; }
.func-panel .grid-wrap[b-bnfroi8lo3] { top: 42px; }
.func-tbl[b-bnfroi8lo3] { border-collapse: collapse; table-layout: fixed; width: 100%; font-size: 14px; }
.func-tbl th[b-bnfroi8lo3] {
    position: sticky; top: 0; z-index: 2; height: 34px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 6px; white-space: nowrap;
}
.func-tbl td[b-bnfroi8lo3] {
    height: 37px; border-right: 1px solid #D1D1D1; border-bottom: 1px solid #E0E0E0;
    padding: 3px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.func-tbl select[b-bnfroi8lo3] { width: 100%; height: 27px; border: 1px solid #888; background: #fff; font-size: 13.5px; }
.f-menu[b-bnfroi8lo3] { width: 100px; } .f-name[b-bnfroi8lo3] { width: 165px; } .f-level[b-bnfroi8lo3] { width: 130px; }

.form-message[b-bnfroi8lo3] { margin-bottom: 3px; padding: 5px 10px; font-size: 12.5px; color: #1B6B5C; background: #fff; border: 1px solid #858585; }
.form-message.error[b-bnfroi8lo3] { color: #BD3737; }

/* 패널 맨 아래 고정. .auth-right 의 padding-bottom(63px) 이 이 자리를 비워 둔다. */
.auth-buttons[b-bnfroi8lo3] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 63px;
    display: flex; align-items: center; gap: 6px; padding-left: 10px;
    background: #fff; border: 1px solid #858585;
}
.crud[b-bnfroi8lo3] { width: 97px; height: 44px; border: 0; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }
.crud:disabled[b-bnfroi8lo3] { opacity: .42; cursor: not-allowed; }
.new[b-bnfroi8lo3] { background: var(--mes-new); }
.add[b-bnfroi8lo3] { background: var(--mes-add); }
.edit[b-bnfroi8lo3] { background: var(--mes-edit); }
.del[b-bnfroi8lo3] { background: var(--mes-delete); }
/* /Components/Pages/ScreenList.razor.rz.scp.css */
/* html/00_전체화면목록.html 시안 이식. 색상 토큰과 리셋은 wwwroot/app.css 참조. */
.list-page[b-wieqt4xd9h] {
    min-height: 100vh;
    background: var(--mes-page);
    color: #20252b;
}

.wrap[b-wieqt4xd9h] { max-width: 1550px; margin: 18px auto 40px; padding: 0 18px; }

.notice[b-wieqt4xd9h] {
    background: #fff; border: 1px solid var(--mes-line);
    padding: 14px 18px; margin-bottom: 12px; font-size: 14px; line-height: 1.65;
}
.notice b[b-wieqt4xd9h] { color: #0b6574; }
.notice a[b-wieqt4xd9h] { color: #163b4d; }

.toolbar[b-wieqt4xd9h] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.toolbar input[b-wieqt4xd9h] {
    height: 36px; width: 340px; padding: 0 10px;
    border: 1px solid #888; border-radius: 0;
    font-family: inherit; font-size: 14px;
}
.count[b-wieqt4xd9h] { font-weight: 700; color: #555; }

.module[b-wieqt4xd9h] { background: #fff; border: 1px solid var(--mes-line); margin-bottom: 10px; }
.module-head[b-wieqt4xd9h] {
    height: 44px; display: flex; align-items: center; padding: 0 15px;
    background: var(--mes-panel-head); color: #fff; font-size: 18px; font-weight: 800;
}
.module-head .num[b-wieqt4xd9h] {
    display: inline-flex; width: 25px; height: 25px;
    align-items: center; justify-content: center;
    background: #FFA500; color: #222; margin-right: 9px; font-size: 13px;
}
.module-head small[b-wieqt4xd9h] { margin-left: auto; font-size: 12px; font-weight: 500; color: #dce4e9; }

.screens[b-wieqt4xd9h] {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #ddd;
}
.screen[b-wieqt4xd9h] {
    min-height: 74px; padding: 12px 14px;
    border-right: 1px solid #ddd; border-bottom: 1px solid #ddd;
    display: flex; align-items: center; gap: 11px;
}
.screen:nth-child(3n)[b-wieqt4xd9h] { border-right: 0; }
.idx[b-wieqt4xd9h] {
    flex: 0 0 34px; width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: var(--mes-grid-head); color: #fff; font-size: 12px; font-weight: 800;
}
.screen a[b-wieqt4xd9h] { color: #163b4d; font-size: 15px; font-weight: 800; text-decoration: none; }
.screen a:hover[b-wieqt4xd9h] { color: #008B8B; text-decoration: underline; }
.screen p[b-wieqt4xd9h] { margin: 4px 0 0; font-size: 12px; color: #70777d; }

.footer[b-wieqt4xd9h] { padding: 18px; text-align: center; color: #687580; font-size: 12px; }

@media (max-width: 1050px) {
    .screens[b-wieqt4xd9h] { grid-template-columns: repeat(2, 1fr); }
    .screen:nth-child(3n)[b-wieqt4xd9h] { border-right: 1px solid #ddd; }
    .screen:nth-child(2n)[b-wieqt4xd9h] { border-right: 0; }
}

@media (max-width: 720px) {
    .screens[b-wieqt4xd9h] { grid-template-columns: 1fr; }
    .screen[b-wieqt4xd9h] { border-right: 0 !important; }
    .toolbar input[b-wieqt4xd9h] { width: 100%; }
}
/* /Components/Pages/ScreenPlaceholder.razor.rz.scp.css */
.placeholder[b-fa7yuyfneb] {
    height: 100%; background: #fff; border: 1px solid #8A8A8A;
    padding: 40px; overflow: auto;
}
.code[b-fa7yuyfneb] { margin: 0 0 6px; font-size: 13px; color: #70777d; }
.name[b-fa7yuyfneb] { margin: 0 0 6px; font-size: 22px; font-weight: 800; color: #163b4d; }
.desc[b-fa7yuyfneb] { margin: 0 0 22px; font-size: 14px; color: #70777d; }
.msg[b-fa7yuyfneb] { margin: 0; font-size: 14px; }
.msg.deny[b-fa7yuyfneb] { color: #A32020; }
.msg.deny b[b-fa7yuyfneb] { color: #A32020; }
/* /Components/Pages/SplitDelivery.razor.rz.scp.css */
/* 04-03 추가/분할 납품관리. html/04_납품관리/03_추가_분할납품관리_v7스타일.html 이식.
   조회조건 88px + 본문(좌 55% / 우 45%). */
.split-page[b-8u33aed4xo] { height: 100%; display: grid; grid-template-rows: 88px 1fr; gap: 3px; }

.panel[b-8u33aed4xo] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-8u33aed4xo] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-8u33aed4xo] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-8u33aed4xo] { width: 20px; height: 20px; }
.count[b-8u33aed4xo] { margin-left: auto; padding-right: 12px; font-size: 13px; font-weight: 500; color: #dce4e9; }

.search .search-fields[b-8u33aed4xo] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0;
    display: flex; align-items: center; gap: 10px; padding: 0 154px 0 20px;
}
.search-fields label[b-8u33aed4xo] { font-size: 15.5px; white-space: nowrap; }
.search .input[b-8u33aed4xo] { height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4; background: #fff; outline: none; font-size: 15px; box-shadow: none; }
.search .input.date[b-8u33aed4xo] { width: 145px; }
.search .input.normal[b-8u33aed4xo] { width: 170px; }
.search-btn[b-8u33aed4xo] {
    position: absolute; right: 7px; top: 7px; width: 140px; height: 32px;
    border: 0; background: var(--mes-new); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
}

.work[b-8u33aed4xo] { display: grid; grid-template-columns: 55% 45%; gap: 3px; min-height: 0; }
.left[b-8u33aed4xo] { min-width: 0; }
.grid-wrap[b-8u33aed4xo] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; }

.tbl[b-8u33aed4xo] { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 698px; font-size: 13.5px; }
.tbl th[b-8u33aed4xo] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 6px; white-space: nowrap;
    border-bottom: 1px solid var(--mes-grid-line);
}
.tbl td[b-8u33aed4xo] {
    height: 32px; padding: 3px 6px; border-bottom: 1px solid var(--mes-grid-line);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr[b-8u33aed4xo] { cursor: pointer; }
.tbl tbody tr:hover td[b-8u33aed4xo] { background: #E8F4F2; }
.tbl tbody tr.selected td[b-8u33aed4xo] { background: var(--mes-grid-selected); }
.tbl tbody tr.no-order td[b-8u33aed4xo] { color: #777; background: #F3F3F3; cursor: default; }
.center[b-8u33aed4xo] { text-align: center; }
.right[b-8u33aed4xo] { text-align: right; }
.remain[b-8u33aed4xo] { color: #C82929; font-weight: 700; }

.c-no[b-8u33aed4xo] { width: 112px; } .c-partner[b-8u33aed4xo] { width: 78px; } .c-item[b-8u33aed4xo] { width: 84px; }
.c-due[b-8u33aed4xo] { width: 105px; } .c-qty[b-8u33aed4xo] { width: 52px; } .c-last[b-8u33aed4xo] { width: 92px; } .c-state[b-8u33aed4xo] { width: 71px; }

.state[b-8u33aed4xo] {
    width: 66px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(0,0,0,.15); font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
.state.done[b-8u33aed4xo] { background: #3CB371; color: #fff; }
.state.partial[b-8u33aed4xo] { background: #008B8B; color: #fff; }
.state.wait[b-8u33aed4xo] { background: #7A7A7A; color: #fff; }
.state.late[b-8u33aed4xo] { background: #C94949; color: #fff; }

/* ===== 우측 3단 : 24 / 32 / 44 ===== */
.rightcol[b-8u33aed4xo] { display: grid; grid-template-rows: 24fr 32fr 44fr; gap: 3px; min-height: 0; overflow: hidden; }
.empty-pick[b-8u33aed4xo] { display: flex; align-items: center; justify-content: center; color: #777; font-size: 15px; }

.info-grid[b-8u33aed4xo] {
    position: absolute; left: 12px; right: 12px; top: 52px; bottom: 9px; display: grid;
    grid-template-columns: 76px minmax(110px,1fr) 76px minmax(110px,1fr);
    grid-template-rows: 31px 31px 48px; gap: 7px 8px; align-items: center;
}
.lab[b-8u33aed4xo] { text-align: right; font-size: 14px; white-space: nowrap; }
.field[b-8u33aed4xo] {
    height: 31px; padding: 4px 7px; background: #E7E7E7; border: 1px solid #C6C6C6;
    font-size: 14px; display: flex; align-items: center;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.summary[b-8u33aed4xo] { grid-column: 1 / 5; display: grid; grid-template-columns: repeat(3, minmax(118px, 1fr)); gap: 8px; height: 48px; }
.sum[b-8u33aed4xo] { height: 48px; border: 1px solid #C6C6C6; display: grid; grid-template-rows: 20px 1fr; background: #fff; }
.sum .t[b-8u33aed4xo] { background: #008B8B; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; }
.sum .v[b-8u33aed4xo] { display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; color: #008B8B; }
.sum.late .t[b-8u33aed4xo] { background: #C94949; }
.sum.late .v[b-8u33aed4xo] { color: #C94949; }

.reg-body[b-8u33aed4xo] { position: absolute; left: 12px; right: 12px; top: 50px; bottom: 9px; }
.reg-grid[b-8u33aed4xo] { display: grid; grid-template-columns: 78px minmax(100px,1fr) 78px minmax(100px,1fr); gap: 8px; align-items: center; }
.input[b-8u33aed4xo] {
    height: 31px; padding: 3px 7px; background: #fff; font-size: 14px; outline: none;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.input.read[b-8u33aed4xo] { background: #E7E7E7; border: 1px solid #C6C6C6; box-shadow: none; }
.note[b-8u33aed4xo] { grid-column: 2 / 5; height: 44px; resize: none; }
.comment[b-8u33aed4xo] { font-size: 11.5px; color: #777; line-height: 15px; margin-top: 6px; margin-left: 86px; }
.comment.message[b-8u33aed4xo] { color: #1B6B5C; }
.comment.message.error[b-8u33aed4xo] { color: #BD3737; }
.actions[b-8u33aed4xo] { position: absolute; right: 0; bottom: 0; display: flex; gap: 6px; }
.btn[b-8u33aed4xo] { width: 78px; height: 36px; border: 0; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.btn.register[b-8u33aed4xo] { background: var(--mes-add); }
.btn.delete[b-8u33aed4xo] { background: var(--mes-delete); }
.btn:disabled[b-8u33aed4xo] { background: #AEB4BA; color: #F4F5F6; border: 1px solid #8D949A; cursor: not-allowed; }

.hist-wrap[b-8u33aed4xo] { position: absolute; left: 0; right: 0; top: 42px; bottom: 32px; overflow: auto; }
.hist-wrap .tbl[b-8u33aed4xo] { min-width: 0; }
.h-seq[b-8u33aed4xo] { width: 58px; } .h-date[b-8u33aed4xo] { width: 110px; } .h-qty[b-8u33aed4xo] { width: 90px; } .h-user[b-8u33aed4xo] { width: 95px; }
.hist-foot[b-8u33aed4xo] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 32px;
    border-top: 1px solid #C8C8C8; background: #FAFAFA;
    display: flex; align-items: center; padding: 0 10px; font-size: 13px;
}
.hist-foot strong[b-8u33aed4xo] { margin-left: auto; }
/* /Components/Pages/UserManagement.razor.rz.scp.css */
/* 08-01 사용자관리. html/08_시스템/01_사용자관리_원본동일_v7스타일.html 이식.
   조회조건 106px + 본문(목록 / 상세 431px). */
.sys-page[b-rjv3e0d2bl] { height: 100%; display: grid; grid-template-rows: 106px minmax(0, 1fr); gap: 3px; }

.panel[b-rjv3e0d2bl] { background: #fff; border: 1px solid #858585; position: relative; overflow: hidden; }
.panel-head[b-rjv3e0d2bl] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; gap: 8px; padding: 0 8px; font-size: 18px; font-weight: 700;
}
.panel-head .icon[b-rjv3e0d2bl] { color: var(--mes-orange); }
.count[b-rjv3e0d2bl] { margin-left: auto; font-size: 13px; font-weight: 500; color: #dce4e9; }

.search-fields[b-rjv3e0d2bl] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px;
    display: flex; align-items: center; gap: 10px; padding: 0 16px;
}
.search-fields label[b-rjv3e0d2bl] { font-size: 15.5px; white-space: nowrap; }
.search-fields input[b-rjv3e0d2bl], .search-fields select[b-rjv3e0d2bl] {
    height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4; background: #fff; outline: none; font-size: 15px;
}
.uid[b-rjv3e0d2bl], .uname[b-rjv3e0d2bl] { width: 170px; }
.use-search[b-rjv3e0d2bl] { width: 130px; }
.search-btn[b-rjv3e0d2bl] {
    margin-left: 8px; height: 32px; width: 130px; border: 0;
    background: var(--mes-new); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
}

/* 우측 폭은 --right-w 로 잡는다. split-pane.js 가 드래그 중에 이 값만 바꾼다.
   가운데 7px 이 분할선이고, 예전의 3px gap 자리를 대신한다. */
.work[b-rjv3e0d2bl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7px var(--right-w, 431px);
    gap: 0; min-height: 0;
}

.splitter[b-rjv3e0d2bl] { position: relative; cursor: col-resize; touch-action: none; background: transparent; }
.splitter[b-rjv3e0d2bl]::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: 2px; right: 2px;
    background: #C3CCD3;
}
.splitter:hover[b-rjv3e0d2bl]::before, .splitter.dragging[b-rjv3e0d2bl]::before { background: var(--mes-orange); }

/* overscroll-behavior-x : 그리드 끝까지 스크롤해도 문서 전체가 따라 움직이지 않는다.
   좌우 이동은 이 영역 안에서만 일어난다. */
.grid-wrap[b-rjv3e0d2bl] {
    position: absolute; left: 0; right: 0; top: 42px; bottom: 0;
    overflow: auto; scrollbar-gutter: stable; overscroll-behavior-x: contain;
}
.tbl[b-rjv3e0d2bl] { border-collapse: collapse; table-layout: fixed; width: max-content; min-width: 100%; font-size: 14px; }
.tbl th[b-rjv3e0d2bl] {
    position: sticky; top: 0; z-index: 2; height: 38px; background: var(--mes-grid-head); color: #fff;
    font-weight: 700; text-align: left; padding: 0 7px; white-space: nowrap;
    border-right: 1px solid #527087; border-bottom: 1px solid var(--mes-grid-line);
}
.tbl td[b-rjv3e0d2bl] {
    height: 37px; border-right: 1px solid #D1D1D1; border-bottom: 1px solid #E0E0E0;
    padding: 4px 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tbl tbody tr[b-rjv3e0d2bl] { cursor: pointer; }
.tbl tbody tr:hover td[b-rjv3e0d2bl] { background: #E8F4F2; }
.tbl tbody tr.selected td[b-rjv3e0d2bl] { background: var(--mes-grid-selected); }
.tbl tbody tr.no-row td[b-rjv3e0d2bl] { color: #777; background: #F3F3F3; cursor: default; }
.center[b-rjv3e0d2bl] { text-align: center; }

.w130[b-rjv3e0d2bl] { width: 130px; } .w160[b-rjv3e0d2bl] { width: 160px; } .w180[b-rjv3e0d2bl] { width: 180px; }

/* ===== 상세 정보 ===== */
.form-body[b-rjv3e0d2bl] { position: absolute; left: 0; right: 0; top: 42px; bottom: 63px; overflow: auto; background: #fff; padding-top: 10px; }
.form-row[b-rjv3e0d2bl] { min-height: 41px; display: grid; grid-template-columns: 121px 1fr; align-items: center; padding-right: 14px; }
.form-row > label[b-rjv3e0d2bl] { text-align: right; padding-right: 12px; font-size: 14.5px; }
.form-row input[type="text"][b-rjv3e0d2bl], .form-row input[type="password"][b-rjv3e0d2bl], .form-row input:not([type])[b-rjv3e0d2bl], .form-row select[b-rjv3e0d2bl] {
    height: 29px; padding: 3px 7px; background: #fff; font-size: 14.5px; outline: none;
    border-style: solid; border-width: 1px;
    border-color: #ECECEC #E6E6E6 #838383 #ECECEC;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}
.form-row input:disabled[b-rjv3e0d2bl] { background: #E7E7E7; color: #666; }
.form-row input[type="checkbox"][b-rjv3e0d2bl] { width: 16px; height: 16px; accent-color: #0B78D0; }
.sys-row[b-rjv3e0d2bl] { border-top: 1px dashed #DDD; margin-top: 6px; padding-top: 6px; }

.form-message[b-rjv3e0d2bl] { margin: 10px 14px 0 121px; font-size: 12.5px; color: #1B6B5C; }
.form-message.error[b-rjv3e0d2bl] { color: #BD3737; }

.buttons[b-rjv3e0d2bl] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 63px;
    display: flex; align-items: center; gap: 6px; padding-left: 10px;
    background: #fff; border-top: 1px solid #ddd;
}
.crud[b-rjv3e0d2bl] { width: 97px; height: 44px; border: 0; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }
.crud:disabled[b-rjv3e0d2bl] { opacity: .42; cursor: not-allowed; }
.new[b-rjv3e0d2bl] { background: var(--mes-new); }
.add[b-rjv3e0d2bl] { background: var(--mes-add); }
.edit[b-rjv3e0d2bl] { background: var(--mes-edit); }
.del[b-rjv3e0d2bl] { background: var(--mes-delete); }

/* 권한 다중 선택 (계획 D1). 한 줄에 다 안 들어가면 줄을 바꾼다. */
.role-picks[b-rjv3e0d2bl] { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; min-height: 27px; }
.role-pick[b-rjv3e0d2bl] { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
/* /Components/Pages/WorkSchedule.razor.rz.scp.css */
/* 03-01 생산작업일정. html/03_생산관리/01_생산작업일정_v7스타일.html 이식. */
.work-schedule-page[b-f9f2adheek] { position: relative; width: 100%; height: 100%; overflow: hidden; }

/* ===== 조회조건 (flex 배치) ===== */
.search-section[b-f9f2adheek] { position: absolute; left: 0; right: 0; top: 0; height: 106px; background: #fff; overflow: hidden; }
.search-fields[b-f9f2adheek] {
    position: absolute; left: 0; right: 0; top: 42px; height: 64px; background: #fff;
    display: flex; align-items: center; gap: 14px; padding: 0 154px 0 20px;
}
.search-group[b-f9f2adheek] { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.search-group label[b-f9f2adheek] { font-size: 15.5px; }
.search-input[b-f9f2adheek], .search-select[b-f9f2adheek] {
    height: 31px; padding: 2px 7px; border: 1px solid #D4D4D4;
    background: #fff; outline: none; font-size: 15px;
}
.search-input.date[b-f9f2adheek] { width: 145px; }
.search-input.normal[b-f9f2adheek] { width: 160px; }
.search-select[b-f9f2adheek] { width: 125px; }
.search-btn[b-f9f2adheek] {
    position: absolute; right: 7px; top: 7px; width: 140px; height: 49px;
    border: 0; background: var(--mes-new); color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 13px;
    font-size: 16px; font-weight: 700; cursor: pointer;
}
.search-btn svg[b-f9f2adheek] { width: 24px; height: 24px; }

/* ===== 주간 요약 ===== */
.summary-wrap[b-f9f2adheek] { position: absolute; left: 0; right: 0; top: 112px; height: 78px; background: #fff; border: 1px solid #C8CED4; }
.summary-head[b-f9f2adheek] {
    height: 34px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding: 0 10px; font-size: 15px;
}
.week-tools[b-f9f2adheek] { display: flex; align-items: center; gap: 5px; margin-left: 8px; }
.week-btn[b-f9f2adheek] { height: 25px; min-width: 29px; border: 1px solid #7E8B98; background: #EEF1F4; color: #273445; font-weight: 700; cursor: pointer; }
.today-btn[b-f9f2adheek] { height: 25px; padding: 0 12px; border: 0; background: #4D88B6; color: #fff; font-weight: 700; cursor: pointer; }
.week-label[b-f9f2adheek] { font-weight: 700; font-size: 15px; margin: 0 8px; }
.basis[b-f9f2adheek] { display: flex; align-items: center; gap: 12px; font-size: 13px; margin-left: 10px; }
.basis label[b-f9f2adheek] { display: flex; align-items: center; gap: 4px; cursor: pointer; }
.basis input[b-f9f2adheek] { accent-color: #0B78D0; }

.summary-body[b-f9f2adheek] { height: 43px; display: flex; align-items: center; }
.sum-item[b-f9f2adheek] {
    height: 43px; min-width: 150px; padding: 5px 22px; border-right: 1px solid #E1E4E7;
    display: flex; align-items: center; gap: 10px;
}
.sum-item b[b-f9f2adheek] { font-size: 22px; }
.sum-item span[b-f9f2adheek] { font-size: 13px; color: #58616A; }
.sum-item.run b[b-f9f2adheek] { color: #168E83; }
.sum-item.done b[b-f9f2adheek] { color: #388E3C; }
.sum-item.warn b[b-f9f2adheek] { color: #E58C00; }
.sum-item.late b[b-f9f2adheek] { color: #D94841; }

/* ===== 목록 ===== */
.list-panel[b-f9f2adheek] {
    position: absolute; left: 0; right: 0; top: 196px; bottom: 0;
    background: #fff; border: 1px solid #8A8A8A; overflow: hidden;
}
.list-panel > .panel-head[b-f9f2adheek] { height: 42px; }
.panel-head[b-f9f2adheek] {
    height: 42px; background: var(--mes-panel-head); color: #fff;
    display: flex; align-items: center; padding-left: 5px; font-size: 18px; font-weight: 700;
}
.head-icon[b-f9f2adheek] { width: 28px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--mes-orange); }
.head-icon svg[b-f9f2adheek] { width: 20px; height: 20px; }

.table-wrap[b-f9f2adheek] { position: absolute; left: 0; right: 0; top: 42px; bottom: 0; overflow: auto; background: #fff; }
.data-table[b-f9f2adheek] { border-collapse: collapse; table-layout: fixed; min-width: 1410px; width: 100%; background: #fff; font-size: 13.33px; }
.data-table th[b-f9f2adheek] {
    position: sticky; top: 0; z-index: 2; height: 38px; padding: 0 8px;
    background: var(--mes-grid-head); color: #fff; font-weight: 700; text-align: left;
    white-space: nowrap; border-bottom: 1px solid var(--mes-grid-line);
}
.data-table td[b-f9f2adheek] {
    height: 31px; padding: 3px 8px; background: #fff; color: #000;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    border-bottom: 1px solid var(--mes-grid-line);
}
.data-table tbody tr[b-f9f2adheek] { cursor: pointer; }
.data-table tbody tr:hover td[b-f9f2adheek] { background: #E8F4F2; }
.data-table tbody tr.selected td[b-f9f2adheek], .data-table tbody tr.selected:hover td[b-f9f2adheek] { background: var(--mes-grid-selected); }
.data-table .empty[b-f9f2adheek] { text-align: center; color: #777; padding: 26px; cursor: default; }
.center[b-f9f2adheek] { text-align: center; }
.right[b-f9f2adheek] { text-align: right; }

.c-day[b-f9f2adheek] { width: 90px; } .c-no[b-f9f2adheek] { width: 145px; } .c-partner[b-f9f2adheek] { width: 120px; } .c-item[b-f9f2adheek] { width: 150px; }
.c-qty[b-f9f2adheek] { width: 95px; } .c-due[b-f9f2adheek] { width: 95px; } .c-proc[b-f9f2adheek] { width: 95px; } .c-rate[b-f9f2adheek] { width: 125px; }
.c-done[b-f9f2adheek] { width: 90px; } .c-def[b-f9f2adheek] { width: 80px; } .c-state[b-f9f2adheek] { width: 90px; } .c-note[b-f9f2adheek] { width: 160px; }

.progress[b-f9f2adheek] { height: 16px; background: #EEF1F3; border: 1px solid #CCD2D6; position: relative; }
.progress i[b-f9f2adheek] { display: block; height: 100%; background: #26A69A; }
.progress span[b-f9f2adheek] { position: absolute; left: 0; right: 0; top: -1px; text-align: center; font-size: 11px; line-height: 15px; color: #102027; }

.status[b-f9f2adheek] { display: inline-block; min-width: 48px; text-align: center; padding: 3px 7px; border: 1px solid #C6CCD1; font-size: 12px; }
.status.plan[b-f9f2adheek] { background: #EEF1F4; }
.status.run[b-f9f2adheek] { background: #D7F0EC; border-color: #8FCFC6; }
.status.done[b-f9f2adheek] { background: #DFF0D8; border-color: #A5C79A; }
.status.warn[b-f9f2adheek] { background: #FCEFD5; border-color: #E6BE73; }
.status.late[b-f9f2adheek] { background: #FBE0DF; border-color: #E3A19E; color: #B22924; font-weight: 700; }
/* /Components/Pages/XrayDefectHistory.razor.rz.scp.css */
/* 05-03 X-ray 불량이력관리 고유 값. 공통 골격은 wwwroot/quality-screen.css 참조. */
.rows-3[b-opnnf6pexm] { grid-template-rows: 106px 94px minmax(0, 1fr); }

.c-code[b-opnnf6pexm] { width: 92px; } .c-num[b-opnnf6pexm] { width: 105px; } .c-small[b-opnnf6pexm] { width: 90px; }

.d-time[b-opnnf6pexm] { width: 145px; } .d-eq[b-opnnf6pexm] { width: 115px; } .d-order[b-opnnf6pexm] { width: 135px; }
.d-partner[b-opnnf6pexm] { width: 115px; } .d-item[b-opnnf6pexm] { width: 130px; }
.d-num[b-opnnf6pexm] { width: 100px; } .d-small[b-opnnf6pexm] { width: 90px; } .d-judge[b-opnnf6pexm] { width: 85px; }
/* /Components/Pages/YieldByProduct.razor.rz.scp.css */
/* 05-02 제품별 수율현황 고유 값. 공통 골격은 wwwroot/quality-screen.css 참조. */
.rows-2[b-mjili1rcmt] { grid-template-rows: 106px minmax(0, 1fr); }

.c-code[b-mjili1rcmt] { width: 95px; } .c-num[b-mjili1rcmt] { width: 105px; } .c-small[b-mjili1rcmt] { width: 92px; }

.d-date[b-mjili1rcmt] { width: 105px; } .d-order[b-mjili1rcmt] { width: 135px; } .d-partner[b-mjili1rcmt] { width: 120px; }
.d-num[b-mjili1rcmt] { width: 115px; } .d-small[b-mjili1rcmt] { width: 100px; }
