.job-assign-helper-view{min-height:100dvh;padding-top:calc(24px + env(safe-area-inset-top));padding-left:14px;padding-right:14px}
.job-assign-helper-view header{padding:0 6px 18px}
.job-assign-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 6px}
.job-assign-title-row h1{margin:12px 0 4px;font-size:clamp(28px,8vw,36px);letter-spacing:-1.4px}
.job-assign-save-note{margin:0 0 10px;color:#7a8589;font-size:11px;font-weight:650;white-space:nowrap;transition:color .16s ease}
.job-assign-save-note.is-saved{color:#4d7227}
.job-assign-subtitle{margin:0 6px 16px;color:#6c797e;font-size:13px;line-height:1.5}
.ja-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0 4px 12px}
.ja-day-tab{position:relative;min-width:0;height:44px;border:1px solid #d7dfe1;border-radius:11px;background:#f7f9f9;color:#66747a;font-weight:800;font-size:15px;padding:0;box-shadow:0 1px 0 rgba(255,255,255,.9) inset}
.ja-day-tab.is-active{border-color:#70852e;background:#eef3df;color:#34421a;box-shadow:0 4px 12px rgba(91,108,39,.12)}
.ja-variant-badge{position:absolute;right:3px;top:3px;min-width:15px;height:15px;display:grid;place-items:center;border-radius:999px;background:#dce6bd;color:#51631f;font-size:9px;font-weight:900;line-height:1}
.ja-day-tab:not(.is-active) .ja-variant-badge{background:#e9edef;color:#899397}
.ja-variant-hint{margin:0 6px 12px;color:#6b772f;font-size:12px;font-weight:700}
.ja-sheet{border:1px solid #d5dddf;border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 12px 30px rgba(25,40,43,.05)}
.ja-sheet-title{display:flex;align-items:center;padding:13px 12px;background:linear-gradient(180deg,#fafcf7,#f4f7ec);border-bottom:1px solid #d7dfd9}
.ja-sheet-title strong{font-size:16px;letter-spacing:-.2px}
.ja-grid{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(0,1fr);background:#d8dfe1;gap:1px}
.ja-cell{min-width:0;background:#fff}
.ja-head-cell{min-height:44px;display:flex;align-items:center;justify-content:center;padding:4px 3px;background:#f2f5f5;font-size:11px;font-weight:850;text-align:center}
.ja-position-head{padding:0;background:#eef2f2}
.ja-airline-group{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px 4px;line-height:1}
.ja-airline-slash{color:#a4acaf;font-size:12px;font-weight:700}
.ja-airline{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 5px;border-radius:6px;background:#fff;border:1px solid currentColor;font-size:12.5px;font-weight:950;letter-spacing:-.4px;line-height:1;color:#47545a;box-shadow:0 1px 0 rgba(255,255,255,.8) inset}
.ja-airline-uo{color:#70408e;background:#faf5ff}
.ja-airline-7c{color:#e45e25;background:#fff6ef}
.ja-airline-ze{color:#733879;background:#fbf4fb}
.ja-airline-8l{color:#c33d39;background:#fff5f3}
.ja-airline-gj{color:#b35c1d;background:#fff8ec}
.ja-airline-3u{color:#ce3f45;background:#fff5f5}
.ja-airline-qw{color:#2f6ca5;background:#f2f8ff}
.ja-airline-kn{color:#2b799d;background:#f0faff}
.ja-position-cell{min-height:38px;display:flex;align-items:center;justify-content:center;padding:1px;text-align:center;font-size:9.8px;font-weight:900;color:#25343a;line-height:1.02;background:#fbfcfc;white-space:pre-line;letter-spacing:-.55px;word-break:keep-all}
.ja-position-cell.is-rc{background:#fff1e8}
.ja-position-cell.is-ramp{background:#f7f9f9}
.ja-position-cell.is-ramp-control{font-size:9.2px;background:#eef2f2}
.ja-input-cell{min-height:38px;padding:2px;background:#fff}
.ja-name-input{display:block;width:100%;height:32px;min-height:32px;resize:none;overflow:hidden;border:1px solid #d4dcde;border-radius:7px;background:#fbfcfc;color:#172327;padding:5px 3px;font:inherit;font-size:11.5px;font-weight:800;line-height:1.15;text-align:center;letter-spacing:-.45px;-webkit-appearance:none;caret-color:transparent;white-space:nowrap;cursor:default}
.ja-name-input::placeholder{color:#b0b8bb;font-weight:600}
.ja-name-input:focus{outline:2px solid #788d36;outline-offset:0;border-color:#788d36;background:#fff}.ja-name-input.has-3-names{font-size:10.6px;letter-spacing:-.65px}.ja-name-input.has-4-names{font-size:9.8px;letter-spacing:-.85px}.ja-name-input.is-picker-trigger{cursor:pointer;touch-action:manipulation}
.ja-bsa-position{min-height:72px;font-size:13px;font-weight:900;background:#f6f8f8}
.ja-bsa-cell{padding:3px;background:#fff;min-height:72px}
.ja-bsa-stack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
.ja-bsa-item{min-width:0;display:grid;gap:2px;padding:3px 2px;border:1px solid #e0e5e6;border-radius:7px;background:#fafbfb}
.ja-bsa-airline{display:flex;justify-content:center;min-height:23px}
.ja-bsa-item .ja-airline{font-size:9.5px;min-height:18px;padding:1px 3px}
.ja-bsa-item .ja-name-input{height:28px;min-height:28px;padding:4px 2px;font-size:9.8px;border-radius:6px;background:#fff}.ja-bsa-item .ja-name-input.has-3-names{font-size:8.9px}.ja-bsa-item .ja-name-input.has-4-names{font-size:8.2px}
.job-assign-footnote{margin:12px 6px 0;color:#8a9498;font-size:11px;line-height:1.55;text-align:center}
@media(max-width:390px){
  .job-assign-helper-view{padding-left:8px;padding-right:8px}
  .ja-days{gap:4px;margin-left:2px;margin-right:2px}
  .ja-day-tab{height:42px;border-radius:9px;font-size:14px}
  .ja-grid{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr)}
  .ja-position-cell{font-size:9.2px;padding-left:0;padding-right:0}
  .ja-name-input{font-size:11px;padding-left:2px;padding-right:2px}.ja-name-input.has-3-names{font-size:10px}.ja-name-input.has-4-names{font-size:9.3px}
  .ja-airline{font-size:12px;padding-left:4px;padding-right:4px}
}

/* Job assign helper · 근무자 빠른 선택 */
.ja-sheet-title{justify-content:space-between;gap:10px}
.ja-reset-button{height:30px;padding:0 11px;border:1px solid #d5dcd4;border-radius:9px;background:#fff;color:#68736d;font:inherit;font-size:11px;font-weight:850;box-shadow:0 1px 0 rgba(255,255,255,.8) inset}
.ja-reset-button:active{transform:scale(.97);background:#f4f6f2}
.ja-grid{position:relative}
.ja-input-cell:has(.ja-name-input:focus){position:relative;z-index:2;background:#f9fbf4}
.ja-staff-panel{position:absolute;z-index:30;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-left:1px solid #cbd5c5;background:rgba(252,253,249,.985);box-shadow:-10px 0 24px rgba(36,52,28,.11);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ja-staff-panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 8px 7px;border-bottom:1px solid #dce3d7;background:linear-gradient(180deg,#f8faef,#f1f5e7)}
.ja-staff-panel-head>div{display:grid;gap:2px}
.ja-staff-panel-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34421a;font-size:12px;font-weight:900;letter-spacing:-.3px}
.ja-staff-date{color:#7a856a;font-size:9.5px;font-weight:750}
.ja-staff-panel-body{flex:1 1 auto;min-height:0;overflow:auto;padding:6px 6px 8px;-webkit-overflow-scrolling:touch}
.ja-staff-group{display:grid;gap:5px;padding:7px 1px 8px;border-bottom:1px solid #e5e9e1}
.ja-staff-group:last-child{border-bottom:0}
.ja-staff-code{display:inline-flex;align-items:center;justify-content:flex-start;width:max-content;max-width:100%;min-height:20px;padding:2px 6px;border-radius:6px;background:#e8efd5;color:#465822;font-size:10px;font-weight:950;letter-spacing:-.2px}
.ja-staff-names{display:flex;flex-wrap:wrap;gap:4px}
.ja-staff-name{min-width:0;height:27px;padding:0 7px;border:1px solid #d8ded7;border-radius:7px;background:#fff;color:#27332d;font:inherit;font-size:10.5px;font-weight:800;letter-spacing:-.25px;white-space:nowrap;box-shadow:0 1px 2px rgba(30,45,25,.04)}
.ja-staff-name:active{transform:scale(.96)}
.ja-staff-name.is-selected{border-color:#71872d;background:#edf3db;color:#394b16;box-shadow:0 0 0 1px rgba(113,135,45,.08) inset}
.ja-staff-empty{margin:16px 5px;color:#89928d;font-size:10.5px;line-height:1.55;text-align:center;word-break:keep-all}
.ja-staff-fold{flex:0 0 auto;width:calc(100% - 12px);height:34px;margin:0 6px 6px;border:1px solid #ccd7bd;border-radius:9px;background:#eef3e3;color:#4d5f26;font:inherit;font-size:11px;font-weight:900;box-shadow:0 -4px 12px rgba(43,57,31,.04)}
.ja-staff-fold span{display:inline-block;margin-right:4px;font-size:13px;transform:translateY(-1px)}
@media(max-width:390px){
  .ja-reset-button{height:28px;padding:0 9px;font-size:10.5px}
  .ja-staff-panel-head{padding-left:6px;padding-right:6px}
  .ja-staff-panel-body{padding-left:5px;padding-right:5px}
  .ja-staff-name{height:26px;padding:0 6px;font-size:10px}
  .ja-staff-code{font-size:9.5px}
}

.ja-staff-count{flex:0 0 auto;display:grid;place-items:center;min-width:34px;height:25px;padding:0 7px;border-radius:999px;background:#dfe9c5;color:#44551e;font-size:10px;font-weight:950}
.ja-staff-name:disabled{opacity:.32;filter:grayscale(.25);cursor:not-allowed}
.ja-staff-name.is-selected:disabled{opacity:1;filter:none}
@media(max-width:390px){.ja-bsa-stack{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}.ja-bsa-item{padding-left:1px;padding-right:1px}.ja-bsa-item .ja-airline{font-size:8.8px;padding-left:2px;padding-right:2px}.ja-bsa-item .ja-name-input{font-size:9px}.ja-bsa-item .ja-name-input.has-4-names{font-size:7.8px}}

/* A11-19 · 운항편 자동 반영 + 선택패널 R/C 강조 + 4명 밀도 조정 */
.ja-airline-empty{color:#aab1b3;font-size:11px;font-weight:800}
.ja-airline-rf{color:#4f5d6b;background:#f5f8fa}
.ja-airline-vj{color:#d8232a;background:#fff3f3}
.ja-airline-jd{color:#c14338;background:#fff5f3}

/* 실제 배정칸은 직무와 관계없이 같은 글자색을 유지한다. */
.ja-name-input{font-size:10.9px;letter-spacing:-.55px}
.ja-name-input.has-3-names{font-size:9.7px;letter-spacing:-.75px}
.ja-name-input.has-4-names{font-size:8.8px;letter-spacing:-.95px}

/* R/C 색상은 펼쳐지는 근무자 선택 메뉴에서만 사용한다. */
.ja-staff-name.is-rc{border-color:#ef9a63;background:#fff0e6;color:#c94f16}
.ja-staff-name.is-rc.is-selected{border-color:#e56c2b;background:#ffe1cd;color:#a83d0d;box-shadow:0 0 0 1px rgba(229,108,43,.09) inset}
.ja-staff-name.is-rc:disabled{opacity:.38;filter:none}
.ja-staff-name.is-rc.is-selected:disabled{opacity:1}

/* BSA는 한 행 최대 4칸을 유지하면서 4명 이름까지 읽히도록 별도 밀도 적용 */
.ja-bsa-cell{min-height:78px}
.ja-bsa-stack{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.ja-bsa-item{align-content:start}
.ja-bsa-item .ja-name-input{height:36px;min-height:36px;padding:3px 1px;font-size:8.6px;line-height:1.05;letter-spacing:-.55px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all}
.ja-bsa-item .ja-name-input.has-3-names{font-size:7.9px;letter-spacing:-.7px}
.ja-bsa-item .ja-name-input.has-4-names{font-size:7.2px;letter-spacing:-.82px}

@media(max-width:390px){
  .ja-name-input{font-size:10.4px}
  .ja-name-input.has-3-names{font-size:9.2px}
  .ja-name-input.has-4-names{font-size:8.4px}
  .ja-bsa-item .ja-name-input{font-size:8.2px}
  .ja-bsa-item .ja-name-input.has-3-names{font-size:7.5px}
  .ja-bsa-item .ja-name-input.has-4-names{font-size:6.9px}
}

/* A11-20 · 다음 요일 기본 / 중복배치 표시 / BSA 세로 이름 */
.ja-name-input{
  height:auto;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
  white-space:normal;
  line-height:1.08;
}
.ja-assignee-list{
  min-width:0;
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:1px 0;
}
.ja-assignee-token{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:1px 2px;
  line-height:1.05;
}
.ja-assignee-name{min-width:0;white-space:nowrap}
.ja-assignee-slash{display:inline-block;color:#768187;font-weight:800;padding:0 1px;line-height:1}
.ja-duplicate-count{
  position:absolute;
  right:-7px;
  top:-6px;
  z-index:2;
  display:grid;
  place-items:center;
  min-width:13px;
  height:13px;
  padding:0 3px;
  border-radius:999px;
  background:#f7d9d7;
  color:#a95757;
  border:1px solid #efc3c0;
  font-size:7.5px;
  font-weight:950;
  line-height:1;
  box-shadow:0 1px 2px rgba(105,52,52,.08);
}
.ja-name-input.has-4-names{font-size:8.8px;letter-spacing:-.9px}
.ja-name-input.has-many-names{font-size:8.2px;letter-spacing:-1px}

/* BSA는 좁은 칸이라 이름을 한 명씩 세로로 쌓는다. */
.ja-bsa-item .ja-name-input{
  height:auto;
  min-height:36px;
  padding:3px 1px;
  font-size:8.2px;
  line-height:1.05;
  overflow:visible;
  white-space:normal;
}
.ja-bsa-item .ja-assignee-list.is-bsa{
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  align-items:stretch;
  justify-content:flex-start;
  gap:2px;
}
.ja-bsa-item .ja-assignee-list.is-bsa .ja-assignee-token{
  width:100%;
  min-height:13px;
  padding:1px 0;
  justify-content:center;
}
.ja-bsa-item .ja-assignee-list.is-bsa .ja-assignee-name{
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
.ja-bsa-item .ja-name-input.has-3-names,
.ja-bsa-item .ja-name-input.has-4-names,
.ja-bsa-item .ja-name-input.has-many-names{font-size:8px;letter-spacing:-.65px}
.ja-bsa-item .ja-duplicate-count{right:-4px;top:-4px;min-width:11px;height:11px;padding:0 2px;font-size:6.5px}

/* 최대 4명 제한을 없앴으므로 선택 메뉴의 4/4 카운터/제한 스타일은 사용하지 않는다. */
.ja-staff-name:disabled{opacity:1;filter:none;cursor:pointer}

@media(max-width:390px){
  .ja-name-input.has-many-names{font-size:7.7px}
  .ja-bsa-item .ja-name-input,
  .ja-bsa-item .ja-name-input.has-3-names,
  .ja-bsa-item .ja-name-input.has-4-names,
  .ja-bsa-item .ja-name-input.has-many-names{font-size:7.6px}
}


/* A11-22 · 미배치 근무자 고정 체크 영역 */
.ja-staff-panel-footer{
  flex:0 0 auto;
  position:relative;
  z-index:4;
  padding:6px 6px 0;
  border-top:1px solid #dfe5da;
  background:rgba(250,252,246,.99);
  box-shadow:0 -8px 16px rgba(43,57,31,.055);
}
.ja-unassigned-box{
  display:grid;
  gap:5px;
  padding:7px 7px 6px;
  border:1px solid #e2cfb5;
  border-radius:10px;
  background:#fff9ef;
  box-shadow:0 1px 3px rgba(88,65,30,.04) inset;
}
.ja-unassigned-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  min-width:0;
}
.ja-unassigned-head strong{
  color:#70531f;
  font-size:10.5px;
  font-weight:950;
  letter-spacing:-.25px;
}
.ja-unassigned-count{
  display:grid;
  place-items:center;
  min-width:20px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#f2dfbe;
  color:#785a28;
  font-size:9px;
  font-weight:950;
}
.ja-unassigned-names{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:4px;
  max-height:78px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:1px 1px 2px;
}
.ja-unassigned-name{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:23px;
  padding:0 7px;
  border:1px solid #eadbc4;
  border-radius:7px;
  background:#fff;
  color:#554b3c;
  font-size:9.8px;
  font-weight:820;
  letter-spacing:-.25px;
  white-space:nowrap;
}
.ja-unassigned-empty{
  color:#9a9286;
  font-size:9.5px;
  font-weight:750;
}
.ja-unassigned-done{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:25px;
  border-radius:7px;
  background:#edf4df;
  color:#52692c;
  font-size:9.8px;
  font-weight:900;
}
.ja-staff-panel-footer .ja-staff-fold{
  width:100%;
  margin:6px 0 6px;
}
@media(max-width:390px){
  .ja-staff-panel-footer{padding-left:5px;padding-right:5px}
  .ja-unassigned-box{padding:6px 6px 5px}
  .ja-unassigned-names{max-height:72px;gap:3px}
  .ja-unassigned-name{min-height:22px;padding:0 6px;font-size:9.4px}
}

/* A11-23 · 오후 칸 선택 시 패널은 오전 영역에 펼쳐진다. */
.ja-staff-panel.is-right-source{
  border-left:0;
  border-right:1px solid #cbd5c5;
  box-shadow:10px 0 24px rgba(36,52,28,.11);
}


/* A11-24 · 좌/우 배치칸 모두 반대편에서 동일한 근무자 선택 패널 사용 */
.ja-name-input.is-panel-source{
  outline:2px solid #80933f;
  outline-offset:-1px;
  border-color:#80933f;
  background:#fbfdf5;
}
.ja-staff-panel.is-left-source{
  border-left:1px solid #cbd5c5;
  border-right:0;
  box-shadow:-10px 0 24px rgba(36,52,28,.11);
}
.ja-staff-panel.is-right-source{
  border-left:0;
  border-right:1px solid #cbd5c5;
  box-shadow:10px 0 24px rgba(36,52,28,.11);
}
.ja-staff-empty.is-warning{color:#a95757;background:#fff4f2;border:1px solid #efcfca;border-radius:10px;padding:11px 10px;font-weight:800}
