    .ct-title-info{display:inline-flex;align-items:center;gap:6px;margin-left:14px;font-size:12px;white-space:nowrap}
    /* 비활성 입력 필드 스타일 (조회 모드: 통일된 외관 유지) */
    #contract-modal input:disabled:not(#ct-terminate-display):not(#ct-voided-display):not([type="radio"]):not([type="checkbox"]),#contract-modal select:disabled:not(#ct-em-gender):not(#ct-edit-em-gender){color:#555!important;background:#f1f5f9!important;border:1px solid #e8eaed!important;cursor:default!important;-webkit-text-fill-color:#555!important;font-weight:400!important}
    #ct-em-gender,#ct-edit-em-gender{background:#f1f5f9!important;border-color:#e8eaed!important;color:#555!important;cursor:default;opacity:1!important;font-weight:400!important;-webkit-text-fill-color:#555!important}
    /* 라디오/체크박스: disabled 시에도 시각적 스타일 유지 */
    #contract-modal input[type="radio"]:disabled,#contract-modal input[type="checkbox"]:disabled{opacity:1!important;cursor:default}
    /* ── 계약 모달 전체 폼 요소 높이 통일: 기본 36px (input-std) ── */
    /* .input-slim(32px) 클래스로 개별 축소 가능 */
    #contract-modal .form-grid input[type="text"]:not(.input-slim),
    #contract-modal .form-grid input[type="number"]:not(.input-slim),
    #contract-modal .form-grid input[type="date"]:not(.input-slim),
    #contract-modal .form-grid input[type="time"]:not(.input-slim),
    #contract-modal .form-grid input[type="datetime-local"]:not(.input-slim),
    #contract-modal .form-grid input[type="email"]:not(.input-slim),
    #contract-modal .form-grid select:not(.input-slim),
    #contract-modal .form-grid .btn:not(.input-slim):not(.btn-sm):not(.btn-lg),
    #contract-modal .form-grid .amount-wrap input,
    #contract-modal .form-grid .form-computed{
      height:36px;box-sizing:border-box;
    }
    /* select 공통 패딩 */
    #contract-modal .form-grid select:not(.input-slim){
      padding:6px 28px 6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#000;font-weight:400;
    }
    /* input 공통 패딩 */
    #contract-modal .form-grid input[type="text"]:not(.input-slim):not([readonly]),
    #contract-modal .form-grid input[type="number"]:not(.input-slim):not([readonly]),
    #contract-modal .form-grid input[type="email"]:not(.input-slim):not([readonly]){
      padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#000;font-weight:400;
    }
    /* 임금조건 섹션 내 필드 높이 통일 (급여 산정기간 ~ 벽지수당 영역) */
    #ct-wage-section-title ~ .form-group input[type="text"],
    #ct-wage-section-title ~ .form-group input[type="number"],
    #ct-wage-section-title ~ .form-group input[type="date"],
    #ct-wage-section-title ~ .form-group select{height:36px;box-sizing:border-box;padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#000;font-weight:400}
    #ct-wage-section-title ~ .form-group select{padding-right:28px}
    #ct-wage-section-title ~ .form-group .amount-wrap input{height:36px;box-sizing:border-box;padding:6px 12px;font-size:13px}
    #ct-wage-section-title ~ .form-group .form-computed{height:36px;box-sizing:border-box;padding:6px 12px;font-size:13px;display:flex;align-items:center}
    /* 급여 산정기간 + 급여일 — 폼 그리드 좌·우 열 한 행 (wrapper는 contents로 투과) */
    #ct-pay-period-row{display:contents}
    #ct-pay-period-row select,
    #ct-pay-period-row input[type="number"],
    #ct-pay-period-row input[type="date"]{height:36px;box-sizing:border-box;padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#000;font-weight:400}
    /* 임금조건 3열(통상시급·월약정·연봉) 중첩 필드 높이 통일 */
    #ct-wage-section-title ~ .form-group .form-group .form-computed{height:36px;box-sizing:border-box;padding:6px 12px;font-size:13px;display:flex;align-items:center;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc}
    #ct-probation-months,#ct-new-probation-months{box-sizing:border-box;height:36px;padding:5px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#000}
    /* 계약 모달 내 .filt-date 폼 높이 통일 (필터바 32px → 폼 표준 36px) */
    #contract-modal .filt-date{height:36px;padding:6px 12px;font-size:13px;color:#000;font-weight:400;border:1px solid #d1d5db;border-radius:7px;background:#fff}
    #contract-modal .filt-date[readonly]{background:#f1f5f9!important;border:1px solid #e8eaed;color:#555;-webkit-text-fill-color:#555}
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit,
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit-fields-wrapper,
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit-text,
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit-month-field,
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit-day-field,
    #contract-modal .filt-date[readonly]::-webkit-datetime-edit-year-field{background:transparent!important;color:#555}
    #contract-modal .filt-date:hover,
    #contract-modal input:not([readonly]):not(:disabled):not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
    #contract-modal select:not(:disabled):hover,
    #contract-modal textarea:not([readonly]):not(:disabled):hover { border-color:#6366f1; }
    #contract-modal .form-grid{align-items:stretch}
    #contract-modal .form-grid .form-group{display:flex;flex-direction:column}
    #contract-modal input[type="email"]{height:36px;box-sizing:border-box}
    #contract-modal .form-group > span[style*="margin-top:4px"]{margin-top:2px!important}
    .cv-action-bar{display:flex;align-items:center;gap:8px;padding:10px 18px;background:#fff;border-bottom:2px solid #e5e7eb;flex-wrap:wrap}
    .cv-action-bar.bottom{border-bottom:none;border-top:2px solid #e5e7eb}
    .cv-action-bar .cv-label{font-size:12px;color:#6b7280;flex:1}
    /* ════════════════════════════════════════
       계약 액션 버튼 alias — 공통 버튼 스타일 기반
       (기존 클래스명 유지, .btn 속성 상속)
       ════════════════════════════════════════ */
    /* 갱신 — Orange */
    .btn-renew{
      background:#f59e0b;color:#fff;
      border:1px solid #d97706;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-renew:hover:not(:disabled){
      background:#d97706;
    }
    .btn-renew:active:not(:disabled){background:#b45309;}
    .btn-renew:disabled,.btn-renew[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    /* 계약 종료 ??Danger */
    .btn-terminate{
      background:#dc2626;color:#fff;
      border:1px solid #b91c1c;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-terminate:hover:not(:disabled){
      background:#b91c1c;
    }
    .btn-terminate:active:not(:disabled){}
    .btn-terminate:disabled,.btn-terminate[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    /* 재계약 — Orange */
    .btn-recontract{
      background:#f59e0b;color:#fff;
      border:1px solid #d97706;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-recontract:hover:not(:disabled){
      background:#d97706;
    }
    .btn-recontract:active:not(:disabled){background:#b45309;}
    .btn-recontract:disabled,.btn-recontract[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    /* 계약 무효 ??Slate */
    .btn-void{
      background:#475569;color:#fff;
      border:1px solid #334155;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-void:hover:not(:disabled){
      background:#334155;
    }
    .btn-void:active:not(:disabled){}
    .btn-void:disabled,.btn-void[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    .btn-draft{
      background:#f59e0b;color:#fff;
      border:1px solid #d97706;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-draft:hover:not(:disabled){background:#d97706;}
    .btn-draft:active:not(:disabled){background:#b45309;}
    .btn-draft:disabled,.btn-draft[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    .btn-draft-edit{
      background:#f59e0b;color:#fff;
      border:1px solid #d97706;border-radius:7px;padding:8px 16px;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      display:inline-flex;align-items:center;gap:5px;
      transition:background .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-draft-edit:hover:not(:disabled){background:#d97706;}
    .btn-draft-edit:active:not(:disabled){background:#b45309;}
    .btn-draft-edit:disabled,.btn-draft-edit[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}
    /* draft 배지 */
    .badge-draft{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;background:rgba(245,158,11,.15);color:#b45309;vertical-align:middle;margin-left:5px;}
    /* 읽기전용 통일 스타일 (조회 모드) — radio, checkbox, .filt-date 제외 */
    .ct-readonly input:not([type="radio"]):not([type="checkbox"]):not(.filt-date),.ct-readonly select,.ct-readonly textarea{background:#f1f5f9!important;color:#555!important;cursor:default;border:1px solid #e8eaed!important;border-radius:7px!important;opacity:1!important;-webkit-text-fill-color:#555!important;font-weight:400!important;height:36px!important;box-sizing:border-box!important;padding:6px 12px!important;font-size:13px!important}
    .ct-readonly select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;padding:6px 28px 6px 12px!important;background:#f1f5f9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E") no-repeat right 8px center!important;background-size:14px!important;color:#555!important}
    .ct-readonly .form-computed{background:#f1f5f9!important;height:36px!important;box-sizing:border-box!important;padding:6px 12px!important;font-size:13px!important;display:flex!important;align-items:center!important}
    .ct-readonly input::placeholder,.ct-readonly textarea::placeholder{color:transparent!important;opacity:0!important;-webkit-text-fill-color:transparent!important}
    /* 해지·해지예정 패널은 ct-readonly 영향 받지 않음 */
    .ct-readonly .ct-fixed-terminate-panel input,
    .ct-readonly .ct-fixed-terminate-panel textarea,
    .ct-readonly .ct-terminate-panel input,
    .ct-readonly .ct-terminate-panel textarea{background:#fff!important;color:#000!important;pointer-events:auto!important;border:1px solid #d1d5db!important;border-radius:7px!important;cursor:text!important;height:36px!important;box-sizing:border-box!important;padding:6px 12px!important;font-size:13px!important;font-weight:400!important}
    .ct-readonly .ct-terminate-panel input:focus,
    .ct-readonly .ct-terminate-panel textarea:focus{border-color:#6366f1!important;outline:none;box-shadow:0 0 0 2px rgba(99,102,241,.25)}
    .ct-terminate-panel .btn{height:36px;box-sizing:border-box}
    /* 신규·해지예정 입력 패널 */
    .ct-terminate-panel{background:#fff5f5;border:1.5px solid #fca5a5;border-radius:10px;padding:14px 18px;margin:12px 18px 0;}
    /* 계약직 해지예정 패널 */
    .ct-fixed-terminate-panel{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1.5px solid #fb923c;border-radius:12px;padding:18px 22px;margin:12px 18px 0;}
    .ct-fixed-terminate-panel .cft-title{font-size:13.5px;font-weight:800;color:#9a3412;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
    .ct-fixed-terminate-panel .cft-desc{font-size:12px;color:#c2410c;line-height:1.7;margin-bottom:16px;background:#fff3e0;border:1px solid #fdba74;border-radius:8px;padding:10px 14px;}
    .ct-fixed-terminate-panel .cft-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
    @media(max-width:520px){.ct-fixed-terminate-panel .cft-grid{grid-template-columns:1fr;}}
    .ct-fixed-terminate-panel .cft-field label{font-size:11.5px;font-weight:700;color:#374151;display:block;margin-bottom:5px;}
    .ct-fixed-terminate-panel .cft-field input,.ct-fixed-terminate-panel .cft-field textarea{width:100%;border:1.5px solid #fdba74;border-radius:8px;padding:7px 11px;font-size:13px;font-family:inherit;background:#fff;box-sizing:border-box;}
    .ct-fixed-terminate-panel .cft-field input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.25)}
    .ct-fixed-terminate-panel .cft-field textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.25)}
    .ct-fixed-terminate-panel .cft-reason-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
    .cft-reason-chip{padding:5px 12px;border-radius:20px;border:1.5px solid #fdba74;background:#fff;font-size:12px;font-weight:600;color:#9a3412;cursor:pointer;transition:all .15s;font-family:inherit;}
    .cft-reason-chip:hover,.cft-reason-chip.selected{background:#f97316;border-color:#ea580c;color:#fff;}
    .cft-warn-box{display:flex;align-items:flex-start;gap:9px;background:#fef2f2;border:1.5px solid #fca5a5;border-radius:9px;padding:11px 14px;margin-bottom:14px;font-size:12px;color:#9f1239;line-height:1.7;}
    .cft-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
    .btn-cft-confirm{
      display:inline-flex;align-items:center;gap:6px;
      background:#dc2626;color:#fff;
      border:1px solid #b91c1c;border-radius:8px;padding:8px 20px;
      font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-cft-confirm:hover:not(:disabled){
      background:#b91c1c;
    }
    .btn-cft-confirm:active:not(:disabled){}
    .btn-cft-confirm:disabled,.btn-cft-confirm[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    /* 사전 계약 상태 통합 배너 (계약예정/계약만료/갱신예정 공용) */
    .ct-status-banner{display:none;align-items:flex-start;gap:14px;border-radius:12px;padding:14px 20px;margin:12px 18px 0;border:2px solid;}
    /* 계약예정 배너 카드 */
    .ct-status-banner.type-preterminate{background:linear-gradient(135deg,#fff1f2,#ffe4e6);border-color:#fda4af;}
    .ct-status-banner.type-preterminate .banner-title{color:#be123c;}
    .ct-status-banner.type-preterminate .banner-date{color:#9f1239;}
    /* 계약만료 배너 디자인 */
    .ct-status-banner.type-pending{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#a5b4fc;}
    .ct-status-banner.type-pending .banner-title{color:#3730a3;}
    .ct-status-banner.type-pending .banner-date{color:#4338ca;}
    /* 갱신예정 배너 알림 */
    .ct-status-banner.type-renew{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d;}
    .ct-status-banner.type-renew .banner-title{color:#92400e;}
    .ct-status-banner.type-renew  .banner-date{color:#b45309;}
    /* 공통 간격 요소 */
    .ct-status-banner .banner-icon{font-size:28px;line-height:1;flex-shrink:0;margin-top:2px;}
    .ct-status-banner .banner-body{flex:1;min-width:0;}
    .ct-status-banner .banner-title{font-size:14px;font-weight:800;margin-bottom:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
    .ct-status-banner .banner-date{font-size:13px;font-weight:600;margin-bottom:10px;}
    .ct-status-banner .banner-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px;}
    /* 배너 내 버튼 공통 (btn-sb) */
    .btn-sb{
      display:inline-flex;align-items:center;gap:5px;
      padding:6px 15px;border-radius:7px;border:1px solid #cccccc;cursor:pointer;
      font-size:12.5px;font-weight:700;font-family:inherit;
      transition:background .18s,border-color .18s,opacity .18s;
    user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-sb:active:not(:disabled){}
    .btn-sb:disabled,.btn-sb[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    /* 수정 — Orange */
    .btn-sb-edit{background:#f59e0b;color:#fff;border-color:#d97706;}
    .btn-sb-edit:hover:not(:disabled){background:#d97706;border-color:#b45309;}
    .btn-sb-edit:active:not(:disabled){background:#b45309;}

    /* 저장 Success */
    .btn-sb-save{background:#16a34a;color:#fff;border-color:#059669;}
    .btn-sb-save:hover:not(:disabled){background:#15803d;border-color:#047857;}

    /* 취소 ??Secondary outline */
    .btn-sb-cancel{background:#475569;color:#fff;border:1px solid #334155;}
    .btn-sb-cancel:hover:not(:disabled){background:#334155;}

    /* 파기 Outline Danger */
    .btn-sb-destroy{background:#475569;color:#fff;border:1px solid #334155;}
    .btn-sb-destroy:hover:not(:disabled){background:#334155;}
    /* 계약 수정·재발행 버튼 (앰버 계열) */
    .btn-amend{
      display:inline-flex;align-items:center;gap:5px;
      padding:8px 16px;border-radius:7px;
      border:1px solid #d97706;
      background:#f59e0b;color:#fff;
      font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;
      transition:background .18s,border-color .18s,opacity .18s;
    }
    .btn-amend:hover:not(:disabled){
      background:#d97706;
      border-color:#d97706;
    }
    .btn-amend:active:not(:disabled){background:#b45309;}
    .btn-amend:disabled,.btn-amend[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}
    /* 계약 수정·재발행 안내 패널 */
    .ct-amend-panel{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1.5px solid #7dd3fc;border-radius:10px;padding:14px 18px;margin:10px 18px 0;}
    .ct-amend-panel .amend-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px;}
    .ct-amend-panel .amend-title{font-size:13px;font-weight:800;color:#0369a1;display:flex;align-items:center;gap:7px;}
    .ct-amend-panel .amend-desc{font-size:11.5px;color:#0c4a6e;line-height:1.7;margin-bottom:12px;}
    .ct-amend-panel .amend-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
    .ct-amend-step{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #bae6fd;border-radius:20px;padding:4px 12px;font-size:11.5px;color:#0369a1;font-weight:600;}
    .ct-amend-step .step-num{background:#0284c7;color:#fff;border-radius:50%;width:17px;height:17px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;}
    .ct-amend-panel .amend-actions{display:flex;gap:8px;flex-wrap:wrap;}
    /* ── 계약 갱신 안내 패널 ── */
    .ct-renew-panel{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1.5px solid #93c5fd;border-radius:10px;padding:14px 18px;margin:10px 18px 0;}
    .ct-renew-panel .renew-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px;}
    .ct-renew-panel .renew-title{font-size:13px;font-weight:800;color:#1e40af;display:flex;align-items:center;gap:7px;}
    .ct-renew-panel .renew-desc{font-size:11.5px;color:#1e3a5f;line-height:1.7;margin-bottom:12px;}
    .ct-renew-panel .renew-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
    .ct-renew-step{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #bfdbfe;border-radius:20px;padding:4px 12px;font-size:11.5px;color:#1e40af;font-weight:600;}
    .ct-renew-step .step-num{background:#1d4ed8;color:#fff;border-radius:50%;width:17px;height:17px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;}
    /* 계약 진행 단계 표시 바 */
    .ct-step-bar{display:flex;align-items:center;gap:0;padding:14px 24px;background:#f8fafc;border-bottom:1px solid #e2e8f0;}
    .ct-step{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#94a3b8;flex:1;}
    .ct-step-num{width:24px;height:24px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;transition:all .2s;}
    .ct-step.active .ct-step-num{border-color:#6366f1;background:#6366f1;color:#fff;}
    .ct-step.active{color:#4f46e5;}
    .ct-step.done .ct-step-num{border-color:#10b981;background:#10b981;color:#fff;}
    .ct-step.done{color:#059669;}
    .ct-step-line{flex:1;height:2px;background:#e2e8f0;margin:0 4px;max-width:40px;}
    .ct-step-line.done{background:#10b981;}
    /* 계약??미리보기 모달 */
    .contract-preview-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:3000;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;}
    .contract-preview-overlay.open{display:flex;}
    .contract-preview-modal{background:#fff;border-radius:14px;width:100%;max-width:820px;box-shadow:0 24px 80px rgba(0,0,0,.25);display:flex;flex-direction:column;margin:auto;max-height:92vh;}
    .contract-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(135deg,#1e293b,#334155);border-radius:14px 14px 0 0;flex-shrink:0;}
    .contract-preview-header h3{color:#fff;font-size:15px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px;}
    .contract-preview-tabs{display:flex;gap:0;background:#f1f5f9;border-bottom:1px solid #e2e8f0;flex-shrink:0;}
    .contract-preview-tab{padding:10px 22px;font-size:12.5px;font-weight:600;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;background:none;border-top:none;border-left:none;border-right:none;}
    .contract-preview-tab.active{color:#4f46e5;border-bottom-color:#6366f1;background:#fff;}
    .contract-preview-body{flex:1;overflow-y:auto;padding:0;}
    /* 계약서 문서 본문 */
    .contract-doc{padding:40px 52px;font-family:'Noto Sans KR',sans-serif;font-size:10pt;line-height:1.3;color:#1a1a1a;background:#fff;}
    .contract-doc h1{text-align:center;font-size:22px;font-weight:900;letter-spacing:6px;margin-bottom:4px;color:#0f172a;padding-bottom:10px;border-bottom:3px double #0f172a;}
    .contract-doc .doc-subtitle{text-align:center;font-size:12px;color:#64748b;margin-bottom:24px;margin-top:6px;}
    .contract-doc .doc-parties{margin-bottom:20px;font-size:10pt;line-height:1.3;text-align:center;}
    .contract-doc .doc-section{margin-bottom:18px;}
    .contract-doc .doc-section-title{font-size:13px;font-weight:800;color:#0f172a;margin-bottom:6px;}
    .contract-doc .info-table{width:100%;border-collapse:collapse;margin-bottom:4px;font-size:10pt;}
    .contract-doc .info-table th{background:#f8fafc;border:1px solid #cbd5e1;padding:7px 12px;font-weight:700;color:#374151;white-space:nowrap;width:32%;text-align:left;}
    .contract-doc .info-table td{border:1px solid #cbd5e1;padding:7px 12px;color:#1e293b;}
    .contract-doc .info-table tr.total-row th{background:#f8fafc;color:#374151;}
    .contract-doc .info-table tr.total-row td{background:#ffffff;font-weight:700;}
    .contract-doc .info-table.ct-doc-4col{table-layout:fixed;}
    .contract-doc .info-table.ct-doc-4col th{width:25%;white-space:normal;word-break:break-word;}
    .contract-doc .info-table.ct-doc-4col td{width:25%;word-break:break-word;}
    .contract-doc .info-table.ct-doc-work th:first-child{width:15%;}
    .contract-doc .info-table.ct-doc-work td:last-child{width:85%;}
    .contract-doc .info-table.ct-doc-6col{table-layout:fixed;}
    .contract-doc .info-table.ct-doc-6col th{width:15%;white-space:normal;word-break:break-word;}
    .contract-doc .info-table.ct-doc-6col td{width:15%;word-break:break-word;}
    .contract-doc .info-table.ct-doc-6col td:nth-child(6){width:25%;}
    .contract-doc .info-table.ct-doc-period{table-layout:fixed;}
    .contract-doc .info-table.ct-doc-period th{width:15%;white-space:normal;word-break:break-word;}
    .contract-doc .info-table.ct-doc-period td{width:15%;word-break:break-word;}
    .contract-doc .info-table.ct-doc-period td:nth-child(2){width:45%;}
    .contract-doc .info-table.ct-doc-period td:nth-child(4){width:25%;}
    .contract-doc .info-table.ct-doc-6eq{table-layout:fixed;}
    .contract-doc .info-table.ct-doc-6eq th{width:16.67%;white-space:normal;word-break:break-word;}
    .contract-doc .info-table.ct-doc-6eq td{width:16.67%;word-break:break-word;}
    .contract-doc .info-table.ct-doc-6eq th:first-child{width:6%;}
    .contract-doc .info-table.ct-doc-6eq td:last-child{width:7%;}
    .contract-doc .info-table .doc-side-label{font-weight:800;text-align:center;vertical-align:middle;}
    .contract-doc .info-table .doc-sign-col{color:#cbd5e1;text-align:center;vertical-align:middle;font-weight:400;font-size:8pt;}
    .contract-doc .info-table.ct-doc-pay td{text-align:right;}
    .contract-doc .doc-note{font-size:11.5px;color:#64748b;margin-top:4px;padding-left:4px;line-height:1.3;}
    .contract-doc .wsh-total{font-size:10pt;color:#1a1a1a;}
    .contract-doc .wsh-total span{font-weight:400;color:#1a1a1a;}
    .contract-doc .wsh-total .wsh-val{font-weight:700;color:#1a1a1a;}
    .contract-doc .wsh-total .wsh-extra{font-size:10pt;}
    /* 근무시간표 (전치형: 요일/월~일 헤더 + 근무·휴게·소정시간 행) — 계약기간 테이블과 동일 스타일 */
    .contract-doc .work-schedule-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11.5px;}
    .contract-doc .work-schedule-table th{background:#f8fafc;border:1px solid #cbd5e1;padding:5px 4px;text-align:center;font-weight:700;font-size:11.5px;color:#374151;white-space:nowrap;}
    .contract-doc .work-schedule-table td{border:1px solid #cbd5e1;padding:4px 4px;text-align:center;vertical-align:middle;word-break:break-word;line-height:1.35;color:#1e293b;}
    .contract-doc .work-schedule-table .row-label{font-weight:700;background:#f8fafc;color:#374151;width:60px;white-space:nowrap;}
    /* 근무시간표 — 초안 미리보기 모달(#cpm-doc-area) 전용 */
    #cpm-doc-area .work-schedule-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11.5px;}
    #cpm-doc-area .work-schedule-table th{background:#f8fafc;border:1px solid #cbd5e1;padding:5px 4px;text-align:center;font-weight:700;font-size:11.5px;color:#374151;white-space:nowrap;}
    #cpm-doc-area .work-schedule-table td{border:1px solid #cbd5e1;padding:4px 4px;text-align:center;vertical-align:middle;word-break:break-word;line-height:1.35;color:#1e293b;}
    #cpm-doc-area .work-schedule-table .row-label{font-weight:700;background:#f8fafc;color:#374151;width:60px;white-space:nowrap;}
    .contract-doc .doc-text{font-size:10pt;margin:4px 0;line-height:1.3;}
    .contract-doc .doc-divider{border:1px solid #cccccc;border-top:1.5px dashed #cbd5e1;margin:16px 0;}
    .contract-doc .doc-insurance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px;}
    .contract-doc .insurance-item{border:1.5px solid #e2e8f0;border-radius:8px;padding:10px;text-align:center;font-size:12.5px;font-weight:600;color:#94a3b8;background:#f8fafc;}
    .contract-doc .insurance-item.active{border-color:#818cf8;color:#4f46e5;background:#eef2ff;}
    .contract-doc .ins-icon{display:block;font-size:16px;margin-bottom:2px;}
    .contract-doc .doc-sign-date{text-align:center;font-size:13px;margin:28px 0 20px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;color:#374151;line-height:1.3;}
    .contract-doc .doc-sign{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:0;}
    .contract-doc .doc-sign-box{border:1.5px solid #cbd5e1;border-radius:10px;padding:14px 16px;}
    .contract-doc .doc-sign-box .sign-title{font-size:12px;font-weight:800;color:#374151;margin-bottom:10px;text-align:center;padding-bottom:6px;border-bottom:1px solid #e2e8f0;}
    .contract-doc .sign-info-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:12px;}
    .contract-doc .sign-info-table th{background:#f8fafc;border:1px solid #e2e8f0;padding:5px 8px;font-weight:700;color:#374151;white-space:nowrap;width:35%;}
    .contract-doc .sign-info-table td{border:1px solid #e2e8f0;padding:5px 8px;color:#1e293b;}
    .contract-doc .sign-stamp-area{text-align:center;padding-top:4px;}
    .contract-doc .sign-stamp{width:64px;height:64px;border:2px dashed #cbd5e1;border-radius:50%;margin:0 auto 4px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#94a3b8;line-height:1.3;}
    .contract-doc .sign-label{font-size:11px;color:#94a3b8;}
    .contract-doc .highlight{background:#fef9c3;padding:0 4px;border-radius:3px;font-weight:700;}
    /* 업로드 섹션 */
    .upload-zone{border:2.5px dashed #a5b4fc;border-radius:12px;padding:32px 20px;text-align:center;background:#f5f3ff;cursor:pointer;transition:all .2s;margin:20px 24px;}
    .upload-zone:hover{border-color:#6366f1;background:#ede9fe;}
    .upload-zone-icon{font-size:36px;margin-bottom:10px;}
    .upload-zone-text{font-size:13.5px;font-weight:700;color:#4f46e5;margin-bottom:4px;}
    .upload-zone-sub{font-size:12px;color:#6b7280;}
    .upload-preview{display:none;margin:0 24px 20px;padding:14px 18px;background:#f0fdf4;border:1.5px solid #86efac;border-radius:10px;align-items:center;gap:12px;}
    .upload-preview.show{display:flex;}
    /* 푸터 */
    .contract-preview-footer{padding:16px 24px;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;flex-shrink:0;background:#f8fafc;border-radius:0 0 14px 14px;}
    /* 계약서 푸터 액션 버튼 */
    .btn-docx{
      display:inline-flex;align-items:center;gap:6px;
      padding:8px 18px;border-radius:8px;
      border:1px solid #1d4ed8;cursor:pointer;
      font-size:13px;font-weight:700;font-family:inherit;
      background:#2563eb;color:#fff;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-docx:hover:not(:disabled){
      background:#1d4ed8;
    }
    .btn-docx:active:not(:disabled){}
    .btn-docx:disabled,.btn-docx[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    .btn-print{
      display:inline-flex;align-items:center;gap:6px;
      padding:8px 18px;border-radius:8px;
      border:1.5px solid #475569;cursor:pointer;
      font-size:13px;font-weight:700;font-family:inherit;
      background:#fff;color:#334155;
      transition:background .18s,border-color .18s,transform .15s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-print:hover:not(:disabled){background:#f1f5f9;border-color:#334155;}
    .btn-print:active:not(:disabled){}
    .btn-print:disabled,.btn-print[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}

    .btn-final-reg{
      display:inline-flex;align-items:center;gap:6px;
      padding:8px 22px;border-radius:8px;
      border:1px solid #059669;cursor:pointer;
      font-size:13px;font-weight:700;font-family:inherit;
      background:#10b981;color:#fff;
      transition:background .18s,border-color .18s,opacity .18s;
      user-select:none;user-select:none;position:relative;overflow:hidden;
    }
    .btn-final-reg:hover:not(:disabled){
      background:#059669;
    }
    .btn-final-reg:active:not(:disabled){}
    .btn-final-reg:disabled,.btn-final-reg[disabled]{background:#cccccc;color:#f2f2f2;border:1px solid #cccccc;cursor:not-allowed;pointer-events:none;opacity:1;}
    /* 계약서 출력 전용 모달 (cpm) */
    #contract-print-modal.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:3000;align-items:center;justify-content:center;padding:16px;}
    #contract-print-modal.modal-overlay.open{display:flex;}
    #contract-print-modal .modal{border-radius:14px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.3);}
    /* 출력 전용 모달 내 문서 리스트 */
    #cpm-doc-area{font-size:10pt;line-height:1.3;color:#1a1a1a;}
    #cpm-doc-area h1,#cpm-doc-area h2{text-align:center;font-size:21px;font-weight:900;letter-spacing:6px;margin-bottom:4px;color:#0f172a;padding-bottom:8px;border-bottom:3px double #0f172a;}
    #cpm-doc-area h2{font-size:20px;letter-spacing:4px;}
    #cpm-doc-area .doc-subtitle{text-align:center;font-size:12px;color:#64748b;margin-bottom:8px;margin-top:4px;}
    #cpm-doc-area .doc-type-banner{text-align:center;margin-bottom:16px;}
    #cpm-doc-area .doc-type-badge{display:inline-block;padding:3px 14px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;}
    #cpm-doc-area .doc-parties{margin-bottom:18px;font-size:10pt;line-height:1.3;text-align:center;}
    #cpm-doc-area .doc-section{margin-bottom:16px;}
    #cpm-doc-area .doc-section-title{font-size:13px;font-weight:800;color:#0f172a;margin-bottom:6px;}
    #cpm-doc-area .info-table{width:100%;border-collapse:collapse;margin-bottom:4px;font-size:10pt;}
    #cpm-doc-area .info-table th{background:#f8fafc;border:1px solid #cbd5e1;padding:6px 10px;font-weight:700;color:#374151;white-space:nowrap;width:32%;text-align:left;}
    #cpm-doc-area .info-table td{border:1px solid #cbd5e1;padding:6px 10px;color:#1e293b;}
    #cpm-doc-area .info-table tr.total-row th{background:#f8fafc;color:#374151;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
    #cpm-doc-area .info-table tr.total-row td{background:#ffffff;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
    #cpm-doc-area .info-table.ct-doc-4col{table-layout:fixed;}
    #cpm-doc-area .info-table.ct-doc-4col th{width:25%;white-space:normal;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-4col td{width:25%;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-work th:first-child{width:15%;}
    #cpm-doc-area .info-table.ct-doc-work td:last-child{width:85%;}
    #cpm-doc-area .info-table.ct-doc-6col{table-layout:fixed;}
    #cpm-doc-area .info-table.ct-doc-6col th{width:15%;white-space:normal;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-6col td{width:15%;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-6col td:nth-child(6){width:25%;}
    #cpm-doc-area .info-table.ct-doc-period{table-layout:fixed;}
    #cpm-doc-area .info-table.ct-doc-period th{width:15%;white-space:normal;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-period td{width:15%;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-period td:nth-child(2){width:45%;}
    #cpm-doc-area .info-table.ct-doc-period td:nth-child(4){width:25%;}
    #cpm-doc-area .info-table.ct-doc-6eq{table-layout:fixed;}
    #cpm-doc-area .info-table.ct-doc-6eq th{width:16.67%;white-space:normal;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-6eq td{width:16.67%;word-break:break-word;}
    #cpm-doc-area .info-table.ct-doc-6eq th:first-child{width:6%;}
    #cpm-doc-area .info-table.ct-doc-6eq td:last-child{width:7%;}
    #cpm-doc-area .info-table .doc-side-label{font-weight:800;text-align:center;vertical-align:middle;}
    #cpm-doc-area .info-table .doc-sign-col{color:#cbd5e1;text-align:center;vertical-align:middle;font-weight:400;font-size:8pt;}
    #cpm-doc-area .info-table.ct-doc-pay td{text-align:right;}
    #cpm-doc-area .doc-note{font-size:11.5px;color:#64748b;margin-top:4px;padding-left:4px;line-height:1.3;}
    #cpm-doc-area .wsh-total{font-size:10pt;color:#1a1a1a;}
    #cpm-doc-area .wsh-total span{font-weight:400;color:#1a1a1a;}
    #cpm-doc-area .wsh-total .wsh-val{font-weight:700;color:#1a1a1a;}
    #cpm-doc-area .wsh-total .wsh-extra{font-size:10pt;}
    #cpm-doc-area .doc-text{font-size:10pt;margin:4px 0;line-height:1.3;}
    #cpm-doc-area .doc-divider{border:1px solid #cccccc;border-top:1.5px dashed #cbd5e1;margin:14px 0;}
    #cpm-doc-area .doc-insurance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px;}
    #cpm-doc-area .insurance-item{border:1.5px solid #e2e8f0;border-radius:6px;padding:8px;text-align:center;font-size:12px;font-weight:600;color:#94a3b8;background:#f8fafc;}
    #cpm-doc-area .insurance-item.active{border-color:#818cf8;color:#4f46e5;background:#eef2ff;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
    #cpm-doc-area .ins-icon{display:block;font-size:14px;margin-bottom:1px;}
    #cpm-doc-area .doc-sign-date{text-align:center;font-size:13px;margin:24px 0 16px;padding:10px;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0;color:#374151;line-height:1.3;}
    #cpm-doc-area .doc-sign{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
    #cpm-doc-area .doc-sign-box{border:1.5px solid #cbd5e1;border-radius:8px;padding:12px 14px;}
    #cpm-doc-area .doc-sign-box .sign-title{font-size:12px;font-weight:800;color:#374151;margin-bottom:8px;text-align:center;padding-bottom:5px;border-bottom:1px solid #e2e8f0;}
    #cpm-doc-area .sign-info-table{width:100%;border-collapse:collapse;font-size:11.5px;margin-bottom:10px;}
    #cpm-doc-area .sign-info-table th{background:#f8fafc;border:1px solid #e2e8f0;padding:4px 8px;font-weight:700;color:#374151;white-space:nowrap;width:32%;}
    #cpm-doc-area .sign-info-table td{border:1px solid #e2e8f0;padding:4px 8px;color:#1e293b;}
    #cpm-doc-area .sign-stamp-area{text-align:center;padding-top:2px;}
    #cpm-doc-area .sign-stamp{width:56px;height:56px;border:2px dashed #cbd5e1;border-radius:50%;margin:0 auto 3px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#94a3b8;line-height:1.3;}
    #cpm-doc-area .sign-label{font-size:10.5px;color:#94a3b8;}
    #cpm-doc-area .highlight{font-weight:700;color:#1d4ed8;}
    @media print{
    /* 계약서 인쇄: wl-print-mode(임금대장)가 아닐 때만 사용 */
      body:not(.wl-print-mode) > *{display:none!important;}
      body:not(.wl-print-mode) #ct-print-area{display:block!important;position:fixed;inset:0;background:#fff;z-index:99999;overflow:auto;}
    }
    /* 계약 도움말 버튼 & 모달 */
    .btn-help{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:2px solid #6366f1;background:#fff;color:#6366f1;font-size:12px;font-weight:800;cursor:pointer;line-height:1;flex-shrink:0;transition:all .15s;vertical-align:middle;margin-left:8px;}
    .btn-help:hover{background:#6366f1;color:#fff;}
    .help-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3000;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;}
    .help-modal-overlay.open{display:flex;}
    .help-modal{background:#fff;border-radius:16px;width:100%;max-width:680px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;margin:auto;}
    .help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;}
    .help-modal-header h3{font-size:16px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px;}
    .help-modal-close{background:rgba(255,255,255,.2);border:1px solid #cccccc;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:14px;transition:background .15s;}
    .help-modal-close:hover{background:rgba(255,255,255,.35);}
    .help-modal-body{padding:24px;max-height:70vh;overflow-y:auto;}
    .help-section{margin-bottom:24px;}
    .help-section:last-child{margin-bottom:0;}
    .help-section-title{font-size:13.5px;font-weight:800;color:#1e293b;margin-bottom:12px;padding-bottom:7px;border-bottom:2px solid #e2e8f0;display:flex;align-items:center;gap:7px;}
    .help-badge-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid #f1f5f9;}
    .help-badge-row:last-child{border-bottom:none;}
.help-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 11px;border-radius:20px;font-size:11.5px;font-weight:500;white-space:nowrap;flex-shrink:0;min-width:70px;}
    .help-badge.green{background:#dcfce7;color:#166534;}
    .help-badge.amber{background:#fef9c3;color:#854d0e;}
    .help-badge.indigo{background:#e0e7ff;color:#3730a3;}
    .help-badge.rose{background:#ffe4e6;color:#be123c;}
    .help-badge.red{background:#fee2e2;color:#991b1b;}
    .help-badge.gray{background:#f1f5f9;color:#475569;}
    .help-badge.slate{background:#e2e8f0;color:#334155;}
    .help-badge.yellow{background:#fef9c3;color:#854d0e;border:1.5px dashed #fbbf24;}
    .help-desc{font-size:12.5px;color:#374151;line-height:1.7;flex:1;}
    .help-desc strong{color:#1e293b;}
    .help-tip{background:#f0fdf4;border:1.5px solid #86efac;border-radius:10px;padding:12px 16px;font-size:12px;color:#166534;line-height:1.8;margin-top:10px;}
    .help-tip-warn{background:#fffbeb;border:1.5px solid #fcd34d;border-radius:10px;padding:12px 16px;font-size:12px;color:#92400e;line-height:1.8;margin-top:10px;}
    .help-flow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px;}
    .help-flow-item{background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;color:#334155;}
    .help-flow-arrow{color:#94a3b8;font-size:13px;font-weight:700;}
    /* 근로계약 모달 내 통상임금 지급유형 선택 버튼 */
    .pi-pay-type-wrap   { display:flex; flex-direction:column; gap:4px; }
    .pi-pay-type-btns   { display:flex; gap:4px; }

    /* 기본 버튼 */
    .pi-pay-type-btn {
      flex:1;
      padding:5px 8px;
      font-size:11.5px;
      font-weight:600;
      font-family:inherit;
      border:1.5px solid #d1d5db;
      border-radius:6px;
      background:#fff;
      color:#6b7280;
      cursor:pointer;
      line-height:1.4;
      transition:background .14s, border-color .14s, color .14s;
      white-space:nowrap;
    }
    .pi-pay-type-btn:hover {
      border-color:#a5b4fc;
      background:#eef2ff;
      color:#4f46e5;
    }

    /* 선택 형태 — 매월 정기지급(통상임금 계열) */
    .pi-pay-type-btn.active-fixed {
      background:#eff6ff;
      border-color:#3b82f6;
      color:#1d4ed8;
    }
    .pi-pay-type-btn.active-fixed:hover {
      background:#dbeafe;
    }

    /* 선택 형태 — 출근일수에 따른 계산(통상임금 계열) */
    .pi-pay-type-btn.active-daily {
      background:#fef3c7;
      border-color:#f59e0b;
      color:#92400e;
    }
    .pi-pay-type-btn.active-daily:hover {
      background:#fde68a;
    }

    /* 금액 입력과 함께 "원" 단위 표시 헬퍼 */
    .amount-wrap {
      position:relative;
      display:flex;
      align-items:center;
    }
    .amount-wrap input[data-amount] {
      padding-right:8px;
      width:100%;
      box-sizing:border-box;
      text-align:right;
    }
    /* 계약 모달: 금액 표시 항목 우측정렬 (월약정·주휴 등 form-computed 포함, 모든 data-amount 입력) */
    #contract-modal .form-computed{justify-content:flex-end;text-align:right}
    #contract-modal input[data-amount]{text-align:right}

    /* 통상임금 포함/제외 힌트 아이콘 */
    .pi-pay-type-hint {
      font-size:11px;
      font-weight:600;
      color:#9ca3af;
      line-height:1;
      padding-left:1px;
      margin-top:4px;
    }

/* ── contract input states ── */
.ct-input-locked{background:#f1f5f9!important;color:#555!important;border:1px solid #e8eaed!important;cursor:default!important;-webkit-text-fill-color:#555!important}
.ct-input-locked-dark{background:#f1f5f9!important;color:#555!important;border:1px solid #e8eaed!important;cursor:default!important;-webkit-text-fill-color:#555!important}
.ct-input-error{background:#fef2f2!important;border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.15)!important}
.ct-hint-normal{color:#6b7280}
.ct-hint-muted{color:#9ca3af}
.ct-hint-error{color:#dc2626}
.ct-hint-success{color:#16a34a}
.ct-alert-ok{background:#F0FDF4;color:#166534;border:1.5px solid #86EFAC}
.ct-alert-error{background:#FFF1F2;color:#991B1B;border:1.5px solid #FCA5A5}
.ct-alert-hint{color:#6b7280;font-size:11.5px;font-weight:500;margin-top:4px}
.ct-alert-hint-error{color:#dc2626;font-size:11.5px;font-weight:500;margin-top:4px}
/* ── 글로벌 유효성 검증 유틸리티 ── */
.va-hint{font-size:11.5px;font-weight:500;margin-top:4px;min-height:1.2em}
.va-hint:empty{visibility:hidden}
.va-hint.va-info{color:#6b7280}
.va-hint.va-ok{color:#059669}
.va-hint.va-err{color:#dc2626}
/* 고객사 모달: 가산수당·일할계산 선택항목 하단 공간 제거 (에러 시에만 여백) */
#cm-premium-mode-hint,#cm-proration-method-hint{margin-top:0;min-height:0}
#cm-premium-mode-hint.va-err,#cm-proration-method-hint.va-err{margin-top:4px}
.va-input-err{border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.15)!important}
.va-banner-hide{display:none!important}
/* ── 인라인 포맷 힌트 (id/phone/email) ── */
.id-format-hint,.phone-format-hint,.email-format-hint{font-size:11px;margin-top:3px;display:block}
/* ── 날짜 선택기: 전체 클릭 가능 + 비활성 차단 ── */
input[type="date"]:not([readonly]):not([disabled]){cursor:text}
input[type="date"][readonly],input[type="date"][disabled]{cursor:default;opacity:1;background:#f1f5f9;border:1px solid #e8eaed;color:#555;-webkit-text-fill-color:#555}
.ct-nav-card{cursor:pointer}
.ct-tab-active{background:#fffbeb;color:#92400e}
.ct-amount-active{background:#fff;color:#1a1a2e;font-weight:600}
#ct-probation-amt[readonly]{background:#f1f5f9!important;color:#555!important;cursor:default!important;font-weight:400!important;border:1px solid #e8eaed!important;-webkit-text-fill-color:#555!important}
/* ── 수습 보수 산정 기준 라디오 카드 ── */
.ct-prob-basis-title{display:block;font-size:11.5px;font-weight:600;color:#555;margin-bottom:8px}
.ct-prob-basis-title .lbl-req{color:#c00;font-weight:900;font-size:13px;margin-left:1px}
.ct-prob-basis-label{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;border:1.5px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:12.5px;font-weight:600;color:#64748b;transition:all .15s}
.ct-prob-basis-label:hover{border-color:#cbd5d8}
.ct-prob-basis-label.active{border-color:#6366f1;background:#eef2ff;color:#4338ca}
.ct-prob-basis-label.active i{color:#6366f1}
.ct-prob-basis-label:focus-within{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px rgba(99,102,241,.25)}
.ct-prob-basis-label input[type="radio"]{width:14px;height:14px;min-width:14px;min-height:14px;padding:0!important;border-radius:50%!important;box-sizing:border-box}
.ct-prob-basis-label input[type="radio"]:checked{background:radial-gradient(circle, #fff 2px, #6366f1 2.5px)}
/* ── 커스텀 버튼 포커스 통일 ── */
.btn-renew:focus-visible,
.btn-recontract:focus-visible,
.btn-amend:focus-visible,
.btn-terminate:focus-visible,
.btn-void:focus-visible,
.btn-draft:focus-visible,
.btn-draft-edit:focus-visible,
.btn-sb:focus-visible,
.btn-sb-edit:focus-visible,
.btn-sb-save:focus-visible,
.btn-cft-confirm:focus-visible { outline:2.5px solid currentColor; outline-offset:2px; }

/* ════════════════════════════════════════════════════════════════
   일용직 임금 지급 방법 (일급/주급/월합산) — 2026-08-20
   ════════════════════════════════════════════════════════════════ */
#ct-pay-method-wrap .ct-pay-method-group{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;}
#ct-pay-method-wrap .ct-pay-method-option{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:13px;font-weight:500;}
#ct-pay-method-wrap .ct-pay-method-panel{margin-top:8px;padding:10px 12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;}
#ct-pay-method-wrap .ct-pay-method-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#ct-pay-method-wrap .ct-pay-method-col{display:flex;align-items:center;gap:6px;}
#ct-pay-method-wrap .ct-pay-method-row-label{font-size:12px;color:#374151;font-weight:600;}
#ct-pay-method-wrap .ct-pay-method-option-sm{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:13px;}
#ct-pay-method-wrap .ct-pay-method-muted{font-size:12px;color:#6b7280;}
#ct-pay-method-wrap .ct-pay-method-info{margin-top:6px;font-size:11.5px;color:#6b7280;line-height:1.6;}
#ct-pay-method-wrap .ct-pay-method-after-days{width:56px;flex:0 0 auto;}
#ct-pay-method-wrap .ct-pay-method-select{flex:0 0 auto;}

/* ════════════════════════════════════════════════════════════════
   고정 기준 선택 라디오 (임금조건) — 2026-09-03
   ════════════════════════════════════════════════════════════════ */
#ct-row-fix-basis .ct-fix-basis-group{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;}
#ct-row-fix-basis .ct-fix-basis-option{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:13px;font-weight:500;}
#ct-pay-day-auto{font-size:12px;color:#6b7280;font-weight:500;}