/* factory1_geupji_inventory_style.css — 1공장 급지 재고 "전용" 스타일
   ────────────────────────────────────────────────────────────────
   헤더(제목/삼선메뉴/드롭다운/날짜네비/버튼) 스타일은 이제
   factory1_common_style.css 로 이전되어 공통으로 사용됩니다.
   이 파일에는 급지 재고 페이지의 표/레이아웃 스타일만 남아 있습니다.
   반드시 factory1_common_style.css 다음에 로드하세요.
   ──────────────────────────────────────────────────────────────── */

/* 급지 재고 페이지는 FT처럼 확대(zoom)를 쓰지 않고 100% 그대로 표시합니다.
   셸 폭 자체는 이제 페이지에 상관없이 항상 고정(factory1_common_style.css 의
   .f1-shell 참고)이라 여기서 따로 지정하지 않습니다. */
.f1-shell--ilji {
    zoom: 1;
}

/* ── 메인 레이아웃 (좌측 테이블 / 우측 패널) ──
   좌측 호기 박스는 표 폭(601px)에 맞춰 631px 고정, 우측은 남은 폭을 전부 차지해
   레이아웃 전체 폭이 헤더(.gf3-wrapper max-width: 1200px)와 정확히 일치한다.
   align-items: stretch 덕분에 우측 카드 높이는 좌측 3적층 높이를 자동으로 따라간다. */
.f1il-layout {
    display: flex;
    flex-direction: row; /* 좌우 배치 설정 */
    align-items: stretch;
    gap: 16px;
    width: 100%;
}

.f1il-machines {
    flex: 0 0 631px; /* 601(표) + 14*2(패딩) + 1*2(보더) */
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.f1il-side-panels {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── 호기 박스 ── */
.f1il-machine-box {
    background: #f7f8fa;
    border-radius: 12px;
    /* 상하 패딩을 10 → 8px 로 줄여 좌측 3적층 총높이를 낮춘다.
       그만큼 우측 2적층의 신축량이 줄어 좌우 행 높이가 거의 같아진다. */
    padding: 8px 14px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    border: 1px solid #e5e5ea;
    width: auto; /* 부모(.f1il-machines)의 631px 를 그대로 채운다 */
}

.f1il-box-header {
    font-size: 14px;
    font-weight: 700;
    color: #1d1d1f;
    text-align: center;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f2f2f7;
}

/* ── 공통 테이블 / 폰트 조정 ──
   collapse 가 아니라 separate 를 씁니다. collapse 표에는 border-radius 가
   먹지 않아서(브라우저 사양) 바깥선을 둥글게 하려면 FT·3공장 일지처럼
   overflow:hidden 래퍼로 잘라내야 하는데, 이 페이지는 표 안(전주 행 [+])에서
   재고 배분 팝오버가 표 밖으로 펼쳐집니다 — 래퍼로 자르면 팝오버까지 같이
   잘립니다. separate 로 두면 표 자신에 곡률을 줄 수 있어 자를 일이 없습니다. */
.f1il-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.f1il-th,
.f1il-td {
    /* separate 모델은 이웃한 칸의 선을 합쳐 주지 않습니다. 오른쪽·아래만
       그으면 collapse 와 똑같이 1px 한 줄짜리 격자가 됩니다. */
    border: 0 solid #d2d2d7;
    border-right-width: 1px;
    border-bottom-width: 1px;
    height: 34px;
    vertical-align: middle;
    padding: 0;
}

/* 표 가장자리는 표 자신(.border-outer)이 그리므로 끝 칸의 선은 지웁니다.
   안 지우면 2px 바깥선 옆에 1px 이 한 줄 더 붙어 두 겹으로 보입니다. */
.f1il-table > thead > tr > *:last-child,
.f1il-table > tbody > tr > *:last-child {
    border-right-width: 0;
}
.f1il-table > tbody > tr:last-child > * {
    border-bottom-width: 0;
}

.f1il-th {
    background: #eceff4;
    font-size: 12px; /* 폰트 통일 축소 */
    font-weight: 600;
    color: #1d1d1f;
    text-align: center;
    letter-spacing: -0.3px;
}

.f1il-row-title {
    background: #f1f3f6;
    width: 76px; /* 행 타이틀 폭 축소 (기존 92px) */
    font-size: 12px;
}

/* 호기별 메인 표(R1(B)~R5)만 고정폭으로 지정해 컬럼 폭을 대폭 축소.
   (76px 타이틀 칸을 제외한 나머지를 7개 컬럼이 균등 분할 → 약 75px/컬럼)
   미니재고표(.f1il-mini-table)·우측 패널표(.f1il-panel-table)는 영향 없음 */
.f1il-machine-table {
    width: 601px;
}

/* 위 표는 601px 고정입니다. 감싸는 이 상자에 스타일이 하나도 없어서,
   화면이 601px 보다 좁으면(폰) 표가 상자를 뚫고 나가 body 전체가 가로로
   밀렸습니다 — 페이지 어디를 잡고 밀어도 화면이 옆으로 움직이는 증상.
   표는 자기 상자 안에서만 가로로 넘기게 합니다. 601px 보다 넓은 화면
   (PC)에서는 넘칠 것이 없어 스크롤바도 생기지 않습니다. */
.f1il-machine-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── 표 바깥 테두리 (2026-08-05 라운드) ──
   담고 있는 카드(.f1il-machine-box · .f1il-panel-box)가 12px 라운드라,
   그 안에서 표만 각지면 모서리 네 곳에서 곡률이 어긋나 보입니다.
   같은 12px 로 맞춥니다. */
.border-outer {
    border: 2px solid #8e8e93 !important;
    border-radius: 12px;
}

/* 네 모서리 칸 — 2px 테두리 안쪽이라 12 − 2 = 10px 이어야 곡선이 겹쳐 보입니다.
   칸을 입력칸·숫자칸이 가득 채우므로(width·height 100%) 그 배경도 같이 깎지
   않으면 둥근 테두리 밖으로 네모 귀퉁이가 삐져나옵니다. */
.f1il-table.border-outer > thead > tr:first-child > *:first-child,
.f1il-table.border-outer > thead > tr:first-child > *:first-child > .f1il-cell,
.f1il-table.border-outer > thead > tr:first-child > *:first-child > .f1il-panel-cell {
    border-top-left-radius: 10px;
}
.f1il-table.border-outer > thead > tr:first-child > *:last-child,
.f1il-table.border-outer > thead > tr:first-child > *:last-child > .f1il-cell,
.f1il-table.border-outer > thead > tr:first-child > *:last-child > .f1il-panel-cell {
    border-top-right-radius: 10px;
}
.f1il-table.border-outer > tbody > tr:last-child > *:first-child,
.f1il-table.border-outer > tbody > tr:last-child > *:first-child > .f1il-cell,
.f1il-table.border-outer > tbody > tr:last-child > *:first-child > .f1il-panel-cell {
    border-bottom-left-radius: 10px;
}
.f1il-table.border-outer > tbody > tr:last-child > *:last-child,
.f1il-table.border-outer > tbody > tr:last-child > *:last-child > .f1il-cell,
.f1il-table.border-outer > tbody > tr:last-child > *:last-child > .f1il-panel-cell {
    border-bottom-right-radius: 10px;
}

.f1il-machine-table tr > *:first-child { border-right: 2px solid #8e8e93 !important; }

/* ── 입력 셀(input / select) 공통 디자인 ── */
.f1il-cell {
    width: 100%;
    height: 100%;
    border: none;
    outline: none;
    background: transparent;
    text-align: center;
    text-align-last: center;
    padding: 0 4px; /* 패딩 축소 */
    font-size: 12px; /* 폰트 통일 */
    font-weight: 500;
    color: #1d1d1f;
    box-sizing: border-box;
}

input.f1il-cell { background: #f7f8fa; }
.f1il-wrapper.edit-mode input.f1il-cell:not([readonly]) { background: #fff9e6; }
.f1il-wrapper.edit-mode input.f1il-cell:not([readonly]):focus { background: #fff2cc; }

select.f1il-cell {
    cursor: pointer;
    background: #f7f8fa;
    appearance: none;
    -webkit-appearance: none;
}
select.f1il-cell:disabled { cursor: default; opacity: 1; color: #1d1d1f; }
select.f1il-cell.type-dh { background: #f7f8fa; }
select.f1il-cell.type-jj { background: #ffe4b5; }
select.f1il-cell.type-pp { background: #e8f5e9; }

/* ── 호기별 미니 재고표 ── */
.f1il-mini-table td {
    text-align: right;
    padding-right: 8px;
    font-size: 12px;
    font-weight: 600;
    background: #f7f8fa;
}
.f1il-mini-table .f1il-subtotal-row th,
.f1il-mini-table .f1il-subtotal-row td {
    background: #eceff4;
    font-weight: 700;
}

/* ── 우측 패널 (통합 테이블) ── */
/* 2적층 균등 신축: 두 카드가 좌측 3적층 높이를 절반씩 나눠 갖고,
   표는 카드 내부의 남은 높이를 전부 채운다. 행 높이(.f1il-td 의 34px)는
   최소값으로만 작용하고 실제 높이는 남는 공간을 6개 행이 균등 분배한다. */
.f1il-panel-box {
    background: #f7f8fa;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    border: 1px solid #e5e5ea;
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.f1il-panel-table {
    flex: 1 1 auto;
    height: 100%;
}

/* 콜그룹 폭: 용지명 컬럼만 넓게 잡고 나머지 데이터 컬럼이 남은 폭을 균등 분할 */
.f1il-col-title { width: 132px; }
.f1il-panel-table .f1il-row-title { width: auto; }

/* 용지명 컬럼 뒤 굵은 구분선 — 좌측 호기 표와 동일한 규칙 */
.f1il-panel-table tr > *:first-child {
    border-right: 2px solid #8e8e93 !important;
}

.f1il-panel-table td {
    padding: 0;
}

/* span 태그 텍스트 우측 정렬 유지 */
span.f1il-panel-cell {
    display: block;
    width: 100%;
    text-align: right;
    padding-right: 8px;
    font-size: 12px;
    font-weight: 600;
}
span.f1il-panel-total {
    display: block;
    text-align: right;
    padding-right: 8px;
    font-size: 13px;
    font-weight: 700;
}

/* input 형태 패널 셀 */
input.f1il-panel-cell {
    text-align: right;
    padding-right: 8px;
    font-weight: 600;
}

.f1il-panel-table .f1il-panel-cell.readonly { background: #f2f4f7; }
.f1il-panel-total-row th,
.f1il-panel-total-row td { background: #eceff4; font-weight: 700; }

/* 오차(실사용-ERP) 색상 클래스 — 배경 없이 글자색만 */
.delta-positive { color: #218739; }
.delta-negative { color: #c62828; }

/* ================================================
   출고 — 자동계산값과 수기 수정값 (실제 · 전산 두 갈래 공통)

   실제 출고의 기본값은 지고 재고에서 계산된 값(v_factory1_geupji_issue.auto_roll),
   전산 출고의 기본값은 공정 PC 출고 바코드를 센 값입니다.
   사람이 고친 칸만 색을 달리해, 오차를 볼 때 "이 날은 손을 댔다"가 한눈에
   보이게 합니다. 이 구분이 없으면 오차 검증 자체가 성립하지 않습니다.
   ================================================ */
input.f1il-panel-cell.f1il-issue-manual {
    background: #fff8e1;
    color: #8a6100;
}

/* 지고 재고를 안 적은 날 — 자동 계산이 불가능합니다.
   0 으로 두면 진짜 0인지 안 센 건지 구분이 안 되므로 자리표시만 둡니다. */
input.f1il-panel-cell.f1il-issue-none::placeholder {
    color: #c7c7cc;
    font-weight: 400;
}

/* ── 출고 메모 띠 ──
   카드(.f1il-panel-box)가 flex 컬럼이고 표가 flex:1 이라, 이 띠에 flex 신축을
   주지 않으면 카드 높이를 키우지 않고 표에서 높이를 가져갑니다.
   → 메모가 생겨도 좌우 정렬이 틀어지지 않습니다. */
.f1il-issue-memos {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.f1il-issue-memos:not(:empty) { margin-top: 8px; }

.f1il-issue-memo {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    line-height: 1.3;
}

/* 어느 출고를 손댔는지 — 두 갈래가 한 띠에 섞이므로 앞에 답니다.
   실제/전산이 구분되지 않으면 "무엇이 어긋났나"를 읽을 수가 없습니다. */
.f1il-issue-memo-tag {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    border-radius: 3px;
    padding: 1px 5px;
    white-space: nowrap;
}
.f1il-issue-tag-issue    { color: #8a6100; background: #fdf0dd; }
.f1il-issue-tag-sysissue { color: #1c6ec4; background: #e8f1fb; }

.f1il-issue-memo-label {
    flex: 0 0 auto;
    font-weight: 700;
    color: #8a6100;
    background: #fff8e1;
    border-radius: 4px;
    padding: 2px 6px;
    white-space: nowrap;
}

/* 보기 모드 — 적힌 메모를 그대로 읽습니다 */
.f1il-issue-memo-text {
    flex: 1 1 auto;
    min-width: 0;
    color: #48484a;
    overflow-wrap: anywhere;
}

/* 수정 모드 — 그 자리에 입력칸이 들어섭니다 */
.f1il-issue-memo-input {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid #d2d2d7;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 11px;
    font-family: inherit;
    color: #1d1d1f;
    background: #f7f8fa;
    outline: none;
}
.f1il-issue-memo-input:focus { border-color: #0071e3; }

/* ================================================
   회계용 재고 배분 — [+] 버튼과 팝오버

   전주 1404 · 702 는 급지 현장에서 본지와 전자를 구분하지 않지만 회계상으로는
   다른 물건입니다(본지 = 자사, 전자 = 사급). 그래서 재고 총계를 나눠 둘 필요가
   있는데, 표에 하위 줄로 붙이면 우측 카드가 좌측 3적층 높이에 맞춰 늘어나는
   구조라 행이 늘어난 만큼 전체가 눌립니다. 게다가 배분은 회계 처리할 때만 쓰는
   값이라 평상시 화면을 차지할 이유가 없습니다.
   → 접어 두고, 필요할 때만 [+] 로 펴 봅니다.
   ================================================ */
/* 버튼과 팝오버의 기준점.
   버튼은 position: absolute 라 흐름에서 빠져 있으므로 자리를 비워 줄 필요가
   없습니다. padding 으로 자리를 만들면 용지 이름이 왼쪽으로 밀려서, 버튼이
   붙은 전주 두 줄만 다른 줄과 어긋나 보입니다. */
.f1il-th.f1il-has-alloc-btn {
    position: relative;
}

/* 동그란 + 버튼. 채움색이 곧 상태입니다 — 접어 둔 채로도 읽힙니다.
     흰색 = 배분 없음(평상시)   파랑 = 배분 있음   빨강 = 총계 초과
   열려 있는 동안은 채움색을 바꾸지 않고 옅은 링만 둘러, 상태 정보를 덮지 않습니다. */
.f1il-alloc-btn {
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    padding: 0;
    border: 1px solid #d2d2d7;
    border-radius: 50%;
    background: #f7f8fa;
    color: #8e8e93;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}

.f1il-alloc-btn:hover { border-color: #8e8e93; color: #1d1d1f; }

.f1il-alloc-btn.has-value {
    background: #007aff;
    border-color: #007aff;
    color: #ffffff;
}

.f1il-alloc-btn.is-over {
    background: #ff3b30;
    border-color: #ff3b30;
    color: #ffffff;
}

.f1il-alloc-btn.open { box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.07); }

/* ── 팝오버 ──
   행 오른쪽으로 펼칩니다. 카드 안쪽 공간을 쓰므로 화면 밖으로 나가지 않고,
   좌표 계산이 없어 페이지 확대(zoom)에도 어긋나지 않습니다. */
.f1il-alloc-pop {
    display: none;
    position: absolute;
    top: -7px;
    left: calc(100% + 10px);
    z-index: 30;
    width: 214px;
    padding: 12px 14px 13px;
    background: #f7f8fa;
    border: 1px solid #e5e5ea;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
    text-align: left;
    cursor: default;
}

.f1il-alloc-pop.open { display: block; }

/* 제목과 닫기. 구분선을 두지 않고 여백으로만 떼어 놓습니다 —
   214px 폭에 가로선이 하나 더 들어가면 그것만 눈에 띕니다. */
.f1il-alloc-pop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
    font-size: 12px;
    font-weight: 700;
    color: #1d1d1f;
    letter-spacing: -0.2px;
}

.f1il-alloc-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #b0b0b8;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.f1il-alloc-close:hover { background: #f0f0f3; color: #1d1d1f; }
.f1il-alloc-close .material-symbols-outlined { font-size: 15px; }

/* ── 팝오버 안쪽 표 ──
   이 표는 우측 패널 표(.f1il-panel-table) 안에 들어 있어서 그쪽 규칙을
   그대로 물려받습니다. 특히 tr > *:first-child 의 굵은 세로 구분선(2px)이
   팝오버 안까지 그어지므로 여기서 끊습니다. */
.f1il-alloc-pop-table { width: 100%; border-collapse: collapse; }

.f1il-alloc-pop-table tr > *:first-child { border-right: 0 !important; }

.f1il-alloc-pop-table th {
    text-align: left;
    font-size: 12px;
    font-weight: 500;
    color: #6e6e73;
    padding: 4px 0;
    background: transparent;
    border: 0;
    height: auto;
    white-space: nowrap;
    letter-spacing: -0.2px;
}

.f1il-alloc-pop-table td {
    padding: 4px 0;
    border: 0;
    height: auto;
    background: transparent;
}

/* 표 안이 아니라 독립된 입력칸이라 테두리를 줍니다 */
.f1il-alloc-pop input.f1il-panel-cell {
    width: 100%;
    height: 26px;
    border: 1px solid #d2d2d7;
    border-radius: 7px;
    background: #f7f8fa;
    padding: 0 8px 0 0;
    font-size: 12px;
    font-weight: 600;
    color: #1d1d1f;
}

.f1il-alloc-pop input.f1il-panel-cell:focus { border-color: #007aff; }
.f1il-wrapper.edit-mode .f1il-alloc-pop input.f1il-panel-cell:not([readonly]) { background: #fff9e6; }

/* 보기 모드에서는 테두리까지 지워 '지금은 못 고친다'가 한눈에 보이게 합니다 */
.f1il-alloc-pop input.f1il-panel-cell[readonly] {
    border-color: transparent;
    background: transparent;
    color: #1d1d1f;
    padding-right: 9px;
}

/* 계산으로 나오는 값(잔여 · 총계)은 배경 없이 숫자만 */
.f1il-alloc-pop span.f1il-panel-cell {
    padding-right: 9px;
    background: transparent !important;
    font-weight: 600;
    color: #1d1d1f;
}

/* 총계는 입력 대상이 아니라 넘지 못하는 한계선이라 한 단계 흐리게 둡니다 */
.f1il-alloc-pop-total th { color: #a1a1a8; }
.f1il-alloc-pop-total span.f1il-panel-cell { color: #a1a1a8; font-weight: 500; }
.f1il-alloc-pop-total th,
.f1il-alloc-pop-total td { padding-top: 7px; }

/* 배분이 재고 총계를 넘은 상태 — 잔여가 음수가 됩니다.
   실재고보다 많이 나눌 수는 없으니 오타이고, 저장은 막힙니다.
   (위의 '배경 없이 숫자만' 규칙보다 선택자를 한 단계 좁게 잡아 이깁니다) */
.f1il-alloc-pop .f1il-panel-cell.f1il-alloc-over,
.f1il-panel-cell.f1il-alloc-over {
    color: #ff3b30 !important;
    font-weight: 700 !important;
    background: transparent !important;
}

/* 입력칸만 테두리로 표시합니다 — 배경을 칠하면 좁은 팝오버에서 너무 튑니다 */
.f1il-alloc-pop input.f1il-panel-cell.f1il-alloc-over {
    border-color: #ff3b30 !important;
    background: #fff5f5 !important;
}

/* ERP 실적이 아직 안 넘어온 날 — 0kg 이 아니라 '–' 로 비워 둡니다.
   0 으로 적으면 "그날 안 썼다"로 읽히는데, 실제로는 야간 배치가 아직
   그 날짜를 안 가져온 경우가 대부분이라 오차 열이 실사용량 전체를
   오차라고 말하게 됩니다. 오차 열도 같이 '–' 로 둡니다. */
.f1il-panel-cell.f1il-erp-empty { color: #c7c7cc; font-weight: 400; }

/* ── 반응형 미디어 쿼리 ──
   좌우 배치에 필요한 폭은 631(좌) + 16(gap) + 440(우측 6컬럼 최소) + 40(body 좌우 패딩) ≈ 1127 CSS px.
   body 에 zoom: 115% (common_header.css) 가 걸려 있고 미디어쿼리는 zoom 이전 뷰포트 기준이므로
   1127 * 1.15 ≈ 1296 → 1300px 를 경계로 상하 배치로 전환한다. */
@media (max-width: 1300px) {
    .f1il-layout {
        flex-direction: column;
        align-items: flex-start;
    }
    .f1il-machines {
        flex: 0 0 auto;
    }
    /* 상하 배치에서는 좌측 호기 박스와 같은 폭으로 맞춰 좌우 정렬선을 유지 */
    .f1il-side-panels {
        flex: 0 0 auto;
        width: 631px;
        max-width: 100%;
    }
    /* 맞출 상대 높이가 없어지므로 신축을 끄고 표 원래 높이로 복귀 */
    .f1il-panel-box {
        flex: 0 0 auto;
    }
    .f1il-panel-table {
        flex: 0 0 auto;
        height: auto;
    }
}

/* ── 폰 (2026-08-01) ──
   호기 표가 601px 고정이라 위 1300px 규칙까지 거쳐도 좌측 묶음이 631px 를
   그대로 유지했고, 그만큼 페이지 전체가 가로로 밀렸습니다. 어디를 잡고
   밀어도 화면이 옆으로 움직여서 세로로 읽는 것조차 불편했습니다.
   여기서는 묶음과 호기 박스가 화면 폭까지 줄어들도록 풀어 주고,
   넘치는 표는 .f1il-machine-table-wrap 안에서만 가로로 넘어갑니다.
   (min-width: 0 이 핵심입니다 — flex 자식은 기본값 auto 라 내용보다
    작아지지 않아서, 폭을 100% 로 줘도 601px 아래로 안 내려갑니다) */
@media (max-width: 640px) {
    .f1il-machines {
        width: 100%;
        min-width: 0;
    }
    .f1il-machine-box {
        min-width: 0;
    }
    /* 폰에서는 아래 두 패널 표(급지 재고/출고 · 사용량 상세 내역)의
       용지명 컬럼을 132px → 100px 로 줄입니다. table-layout: fixed 라
       줄어든 32px 는 우측 데이터 열 셋이 자동으로 균등하게 나눠 가집니다.
       (가장 긴 이름 '페이퍼 1404'와 전주 행의 + 배분 버튼까지 100px 안에
        들어가는 것을 확인하고 정한 값입니다) */
    .f1il-col-title {
        width: 100px;
    }
}
/* ================================================
   전일 재고 가져오기 — '급지 재고 / 출고' 헤더 좌측 버튼
   (동작은 factory1_geupji_render.js 의 bindLoadPrev)
   ================================================ */
.f1il-box-header.f1il-header-with-btn {
    position: relative;
    min-height: 24px;
    line-height: 24px;
}

/* 지고 재고의 '출고 요약' 버튼과 같은 규격 — 자리만 좌측입니다 */
.f1il-loadprev-btn {
    position: absolute;
    top: -2px;
    left: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 26px;
    padding: 0 11px 0 8px;
    border: 1px solid #d1d1d6;
    border-radius: 13px;
    background: #f7f8fa;
    color: #1d1d1f;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: -0.2px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.f1il-loadprev-btn:hover { background: #f4f4f8; border-color: #a1a1a8; }
.f1il-loadprev-btn:disabled { opacity: 0.5; cursor: default; }
.f1il-loadprev-btn .material-symbols-outlined { font-size: 15px; color: #8e8e93; }
