
:root {
  --navy: #17324d;
  --blue: #2477bd;
  --blue-dark: #165785;
  --line: #d8e0e8;
  --muted: #667788;
  --red: #a42d38;
  font-family: Inter, "Noto Sans KR", Arial, sans-serif;
  color: #172033;
  background: #eef2f7;
  font-synthesis: none;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { min-height: 100%; }
body { margin: 0; min-height: 100vh; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
.field input,
.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid #cfd8e5;
  border-radius: 8px;
  padding: 12px 14px;
  background: #fff;
}
.field input:focus,
.form-field input:focus,
.form-field textarea:focus {
  outline: 2px solid #8cb3df;
  border-color: #3e78b2;
}
.primary-button, .secondary-button, .status-button, .danger-button,
.login-submit {
  border: 0;
  border-radius: 8px;
  padding: 10px 16px;
  font-weight: 700;
}
.primary-button { color: #fff; background: #194f86; }
.primary-button:disabled, .secondary-button:disabled, .login-submit:disabled { opacity: .55; cursor: not-allowed; }
.secondary-button { color: #24364d; background: #e8edf4; }
.status-button { border: 1px solid #ead59e; color: #765714; background: #fff3d2; }
.danger-button { color: #fff; background: #a83b3b; }
.message { line-height: 1.45; }

/* Login: drawing/document management systems aligned */
.login-page { display: block; min-height: 100vh; padding: 0; background: #fff; }
.login-screen { min-height: 100vh; background: #fff; }
.login-layout { display: grid; height: 100%; min-height: 100vh; grid-template-columns: minmax(440px, 1.05fr) minmax(420px, .95fr); }
.login-visual { position: relative; display: grid; min-height: 100vh; place-items: center; overflow: hidden; padding: 34px; background: #fff; }
.login-visual-image { display: block; width: min(72%, 610px); height: auto; max-height: calc(100vh - 68px); object-fit: contain; object-position: center; border-radius: 14px; box-shadow: 0 16px 42px rgba(23,50,77,.12); }
.login-form-panel { display: flex; min-height: 100vh; align-items: center; justify-content: center; flex-direction: column; padding: clamp(28px, 5vw, 76px); background: #fff; }
.login-card { width: min(460px, 100%); border: 1px solid #e0e6ed; border-radius: 22px; padding: clamp(30px, 4vw, 48px); background: #fff; box-shadow: 0 24px 70px rgba(23,50,77,.14); }
.login-card-brand-image { margin-bottom: 32px; }
.login-card-brand-image img { display: block; width: auto; max-width: min(300px, 100%); height: auto; margin: 0; }
.login-eyebrow { margin: 0 0 11px; color: #557596; font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.login-card h2 { margin: 0 0 10px; color: #15293c; font-size: 32px; }
.login-description { margin: 0 0 28px; color: #687888; line-height: 1.6; }
.login-form { display: grid; gap: 14px; }
.login-field label { display: block; margin-bottom: 8px; color: #33495d; font-weight: 700; }
.login-form input { min-height: 44px; padding: 9px 11px; }
.password-control { position: relative; display: block; }
.password-control input { padding-left: 42px; padding-right: 48px; }
.password-icon { position: absolute; left: 13px; top: 50%; z-index: 1; width: 18px; height: 18px; transform: translateY(-50%); color: #6c7e8e; pointer-events: none; }
.password-icon svg, .password-toggle svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle { position: absolute; right: 5px; top: 5px; width: 34px; min-height: 34px; margin: 0; border: 0; border-radius: 6px; padding: 7px; color: #66809a; background: transparent; box-shadow: none; }
.password-toggle:hover { color: var(--blue-dark); background: #edf5fb; }
.password-toggle.active { color: var(--blue); }
.login-submit { width: 100%; min-height: 52px; margin-top: 16px; color: #fff; background: linear-gradient(135deg, #173f69, #2c70b7); font-size: 16px; }
.login-message { min-height: 22px; margin-top: 14px; color: var(--red); font-weight: 700; }
.login-environment { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; border-top: 1px solid #edf1f5; padding-top: 14px; color: #8493a2; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.login-footer { margin: 20px 0 0; color: #8a98a7; font-size: 12px; }
body:not(.login-page) { background: #eef2f7; }

.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#11253e;color:#dce6f2;display:flex;flex-direction:column}.brand{display:flex;align-items:center;padding:22px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand div{display:grid}.brand strong{font-size:18px;letter-spacing:-.02em}.brand span{font-size:10px;letter-spacing:.12em;color:#8fb0d3;margin-top:3px}.main-nav{padding:18px 12px;overflow:auto}.nav-section{margin:10px 0}.nav-section-title{display:block;padding:9px 12px 5px;font-size:11px;color:#86a0bd;letter-spacing:.08em}.nav-button{width:100%;border:0;background:transparent;color:#dce6f2;text-align:left;padding:11px 13px;border-radius:7px;margin:2px 0}.nav-button:hover,.nav-button.is-active{background:#24527f;color:#fff}.nav-button.child{padding-left:26px;font-size:13px}.sidebar-account{margin-top:auto;padding:18px 20px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:4px;font-size:12px}.sidebar-account span{color:#91a8c0}.main-area{min-width:0}.topbar{height:86px;background:#fff;border-bottom:1px solid #dce3eb;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;position:sticky;top:0;z-index:10}.breadcrumb{margin:0;color:#78879b;font-size:12px}.topbar h2{margin:4px 0 0;font-size:23px}.global-actions{display:flex;gap:9px;align-items:center}.workspace{padding:24px;min-height:calc(100vh - 86px)}.view{display:none}.view.is-active{display:block}.view-state{min-height:260px;display:grid;place-items:center;color:#6b7b90}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px}.metric-card,.panel{background:#fff;border:1px solid #dce3eb;border-radius:11px;box-shadow:0 3px 12px rgba(28,52,79,.04)}.metric-card{padding:20px}.metric-card span{color:#6e7e92;font-size:12px}.metric-card strong{display:block;font-size:30px;margin-top:8px}.panel{padding:20px;margin-top:18px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-header h3{margin:0;font-size:17px}.inline-actions{display:flex;gap:8px}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#e8eef5;color:#465a72}.status-pill.ok{background:#dff3e8;color:#286743}.status-pill.warn{background:#fff0cb;color:#7a5a10}.status-pill.error{background:#f9dddd;color:#8c3030}.phase-list{display:grid;gap:10px}.phase-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid #e0e6ed;border-radius:8px}.phase-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8eef6;font-weight:800}.data-table-wrap{overflow:auto;border:1px solid #e0e6ed;border-radius:8px}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid #e7ecf2;text-align:left;font-size:13px;white-space:nowrap}.data-table th{background:#f5f7fa;color:#53657b;position:sticky;top:0}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fbff}.empty-row{text-align:center!important;color:#7c8a9c;padding:32px!important}.admin-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}.permission-panel{grid-column:1/-1}.permission-panel{overflow-x:auto}.permission-grid{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(150px,.9fr) minmax(180px,1.1fr) repeat(5,72px);min-width:880px;border:1px solid #dfe6ee;border-radius:8px;overflow:hidden}.permission-grid>div{padding:9px 10px;border-bottom:1px solid #e6ebf1}.permission-grid>div:nth-child(8n+4),.permission-grid>div:nth-child(8n+5),.permission-grid>div:nth-child(8n+6),.permission-grid>div:nth-child(8n+7),.permission-grid>div:nth-child(8n+8){text-align:center}.permission-grid .head{font-size:12px;font-weight:800;background:#f4f7fa}.permission-grid input{width:18px;height:18px}.modal-backdrop{position:fixed;inset:0;background:rgba(10,24,43,.55);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(620px,100%);max-height:90vh;background:#fff;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 20px 70px rgba(0,0,0,.25)}.modal>header,.modal>footer{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e7ed}.modal>footer{border-bottom:0;border-top:1px solid #e2e7ed;justify-content:flex-end;gap:8px}.modal h3{margin:0}.modal>header button{border:0;background:transparent;font-size:26px}.modal-body{padding:20px;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-field{display:grid;gap:7px;font-size:13px;font-weight:700}.form-field.full{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:8px}.custom-select{position:relative}.custom-select-display{width:100%;border:1px solid #cfd8e5;background:#fff;border-radius:8px;padding:11px 12px;display:flex;justify-content:space-between;text-align:left}.custom-select.is-empty .custom-select-label{color:#8a98aa}.custom-select.has-error .custom-select-display{border-color:#b93636}.custom-select-popover{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:120;background:#fff;border:1px solid #cdd7e3;border-radius:8px;box-shadow:0 12px 32px rgba(25,49,77,.18);padding:8px}.custom-select-search{width:100%;padding:9px;border:1px solid #d7dfe8;border-radius:6px}.custom-select-options{max-height:220px;overflow:auto;margin-top:6px}.custom-select-option{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px;border-radius:5px}.custom-select-option.is-highlighted{background:#e8f1fb}.custom-select-option.is-selected{font-weight:800}.custom-select-empty{padding:12px;color:#7a8797;text-align:center}.toast-region{position:fixed;right:20px;bottom:20px;z-index:200;display:grid;gap:8px}.toast{min-width:280px;max-width:430px;background:#172c46;color:#fff;border-radius:8px;padding:12px 14px;box-shadow:0 8px 30px rgba(0,0,0,.25)}.toast.error{background:#8f3030}.toast.success{background:#286744}.pending-row{opacity:.65}.code{font-family:Consolas,monospace;font-size:12px}.muted{color:#76869a}.loading-inline{display:inline-flex;gap:8px;align-items:center}.loading-inline:before{content:"";width:14px;height:14px;border:2px solid #c8d4e1;border-top-color:#24527f;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.storage-status-grid { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 12px; }
.storage-card { border: 1px solid #dfe6ed; border-radius: 9px; padding: 15px; background: #f9fbfd; }
.storage-card span { display: block; color: #718196; font-size: 12px; }
.storage-card strong { display: block; margin-top: 7px; color: #20364d; font-size: 18px; overflow-wrap: anywhere; }
.storage-module-list { display: grid; gap: 8px; }
.storage-module-row { display: grid; grid-template-columns: minmax(140px, .7fr) minmax(220px, 1.3fr) auto; align-items: center; gap: 12px; border: 1px solid #e1e7ed; border-radius: 8px; padding: 11px 13px; }
.storage-module-row code { overflow-wrap: anywhere; white-space: normal; }
.storage-path { overflow-wrap: anywhere; word-break: break-all; }
@media(max-width:1000px){.login-screen{grid-template-columns:1fr}.login-visual{display:none}.app-shell{grid-template-columns:210px 1fr}.card-grid{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:1fr}.permission-panel{grid-column:auto}}@media(max-width:720px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto}.main-nav{display:flex;overflow:auto}.nav-section{display:flex}.nav-section-title{display:none}.nav-button{white-space:nowrap}.sidebar-account{display:none}.topbar{height:auto;align-items:flex-start;gap:12px;padding:14px;flex-direction:column}.global-actions{width:100%;overflow:auto}.workspace{padding:12px}.card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}


@media (max-width: 1000px) {
  .login-layout { grid-template-columns: 1fr; }
  .login-visual { display: none; }
  .login-form-panel { padding: 20px; }
  .login-card { border-radius: 17px; padding: 28px 22px; }
  .storage-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .storage-status-grid { grid-template-columns: 1fr; }
  .storage-module-row { grid-template-columns: 1fr; }
}
.deploy-overview .storage-card small { display: block; margin-top: 8px; color: #708196; overflow-wrap: anywhere; }
.deploy-upload-row { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 12px; align-items: center; }
.deploy-upload-row input[type="file"] { min-height: 44px; border: 1px solid #cfd8e5; border-radius: 8px; padding: 8px 10px; background: #fff; }
.deploy-stage { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 74px; border: 1px dashed #cfd9e5; border-radius: 9px; background: #f8fafc; }
.deploy-arrow { color: #6d7f92; font-size: 24px; font-weight: 800; }
.deploy-lists .panel { margin-top: 18px; }
.deploy-row-actions { display: flex; align-items: center; gap: 6px; }
.deploy-row-actions .secondary-button { min-width: 72px; padding: 8px 10px; white-space: nowrap; }
.deploy-log { max-height: 420px; margin: 0; overflow: auto; border-radius: 8px; padding: 16px; background: #111d2b; color: #d9e6f2; font: 12px/1.6 Consolas, "Noto Sans Mono", monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.form-error { color: var(--red); font-weight: 700; }
@media(max-width:720px){.deploy-upload-row{grid-template-columns:1fr}.deploy-stage{flex-wrap:wrap}.deploy-lists{display:block}}

.storage-upload-grid { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(280px, 1.2fr) auto; gap: 12px; align-items: end; }
.storage-upload-grid input[type="file"] { width: 100%; min-height: 44px; border: 1px solid #cfd8e5; border-radius: 8px; padding: 8px 10px; background: #fff; }
.storage-upload-note { margin: 10px 0 0; color: #718196; font-size: 12px; }
.attachment-name { max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
.table-action { border: 0; border-radius: 6px; padding: 7px 10px; color: #24405f; background: #e8eef5; font-weight: 700; }
@media(max-width:900px){.storage-upload-grid{grid-template-columns:1fr}.storage-upload-grid .primary-button{width:100%}}

/* V9: 상단 대분류 + 좌측 중분류 메뉴 */
.topbar { height: auto; display: block; padding: 0; }
.topbar-main { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 28px; }
.major-nav { display: flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 24px; overflow-x: auto; border-top: 1px solid #edf1f5; background: #fbfcfe; scrollbar-width: thin; }
.major-nav-button { flex: 0 0 auto; min-height: 46px; border: 0; border-bottom: 3px solid transparent; padding: 0 16px; color: #53657a; background: transparent; font-weight: 800; white-space: nowrap; }
.major-nav-button:hover { color: #194f86; background: #f1f6fb; }
.major-nav-button.is-active { color: #194f86; border-bottom-color: #2477bd; background: #edf5fc; }
.nav-category-title { padding: 8px 12px 12px; color: #8ba4bf; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.main-nav .nav-button { padding-left: 14px; }
.workspace { min-height: calc(100vh - 130px); }

/* V9: ZIP + SHA 확인파일 동시 선택 */
.deploy-upload-pair { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) auto; gap: 12px; align-items: end; }
.deploy-file-field { display: grid; gap: 7px; color: #53657a; font-size: 12px; font-weight: 800; }
.deploy-file-field input[type="file"] { width: 100%; min-height: 44px; border: 1px solid #cfd8e5; border-radius: 8px; padding: 8px 10px; background: #fff; }

@media(max-width:1000px) {
  .topbar-main { padding: 14px 18px; }
  .major-nav { padding: 0 14px; }
  .deploy-upload-pair { grid-template-columns: 1fr 1fr; }
  .deploy-upload-pair .primary-button { grid-column: 1 / -1; }
}
@media(max-width:720px) {
  .topbar-main { min-height: 0; align-items: flex-start; flex-direction: column; padding: 14px; }
  .major-nav { padding: 0 8px; }
  .major-nav-button { padding: 0 12px; }
  .deploy-upload-pair { grid-template-columns: 1fr; }
  .deploy-upload-pair .primary-button { grid-column: auto; width: 100%; }
  .main-nav { display: flex; gap: 4px; }
  .nav-category-title { display: none; }
}

/* V10: 문서리스트관리시스템 공통 측면 메뉴 양식 */
.app-shell { grid-template-columns: 220px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; display: flex; min-height: 0; height: 100vh; flex-direction: column; padding: 18px 12px; color: #fff; background: var(--navy); overflow-y: auto; }
.sidebar-brand { margin: 0 8px 13px; }
.sidebar-brand strong { display: block; color: #fff; font-size: 21px; font-weight: 900; letter-spacing: -.02em; }
.sidebar-brand small { display: block; margin-top: 4px; color: #c8d7e5; font-size: 12px; letter-spacing: .04em; }
.sidebar-user { margin: 0 4px 17px; border: 1px solid rgba(255,255,255,.13); border-radius: 7px; padding: 10px 11px; color: #e8f1f8; background: rgba(255,255,255,.07); font-size: 12px; line-height: 1.55; }
.sidebar-user b { display: block; color: #fff; font-size: 13px; }
.sidebar-user span { display: block; color: #d6e3ef; overflow-wrap: anywhere; }
.main-nav { display: grid; gap: 4px; min-height: 0; padding: 0; overflow: auto; }
.nav-item { display: flex; width: 100%; min-height: 38px; align-items: center; justify-content: flex-start; gap: 7px; border: 0; border-color: transparent; border-radius: 7px; padding: 7px 10px; color: #dce8f3; background: transparent; text-align: left; }
.nav-item:hover, .nav-item.active, .nav-item.is-active { color: #fff; background: rgba(255,255,255,.14); border-color: transparent; }
.nav-icon { display: inline-flex; width: 17px; flex: 0 0 17px; justify-content: center; color: #e8f2fb; font-size: 14px; }
.nav-divider { border-top: 1px solid rgba(255,255,255,.18); margin: 10px 8px 4px; }
.nav-title { padding: 4px 10px; color: #aebfd0; font-size: 11px; }
.sidebar-bottom { margin-top: auto; padding-top: 12px; }
.logout-button { margin-top: 5px; }
.nav-version { display: grid; gap: 3px; margin: 10px 8px 0; color: #a9bfd3; font-size: 11px; line-height: 1.35; }
.nav-version span { display: block; }
.nav-version strong { color: #fff; font-weight: 800; }

/* V11: Apps Script식 대분류·중분류·세부메뉴 구조 */
.topbar{height:auto;min-height:112px;display:grid;grid-template-rows:auto 42px 38px;align-items:stretch;padding:12px 26px 0}.topbar-main{display:flex;align-items:center;justify-content:space-between;gap:18px}.major-nav,.secondary-nav{display:flex;align-items:flex-end;gap:2px;overflow-x:auto;scrollbar-width:none}.major-nav::-webkit-scrollbar,.secondary-nav::-webkit-scrollbar{display:none}.major-nav-button,.secondary-nav-button{border:0;background:transparent;white-space:nowrap;font-weight:800}.major-nav-button{height:42px;padding:0 20px;color:#52667e;border-bottom:3px solid transparent}.major-nav-button:hover{background:#f5f8fb}.major-nav-button.is-active{color:#17324d;border-bottom-color:#2d6da3}.secondary-nav{border-top:1px solid #edf1f5}.secondary-nav-button{height:38px;padding:0 17px;color:#687b90;border-bottom:3px solid transparent}.secondary-nav-button.is-active{color:#17324d;border-bottom-color:#17324d}.workspace{min-height:calc(100vh - 142px)}.side-context{margin:2px 4px 10px;padding:9px 11px;border-bottom:1px solid rgba(255,255,255,.13)}.side-context span{display:block;color:#9db4c9;font-size:10px;font-weight:800}.side-context strong{display:block;margin-top:3px;color:#fff;font-size:13px}.password-change-button{margin-bottom:4px}.logout-button{margin-bottom:8px}

/* V11: 자재·외주현황 기존 PC 웹앱 기능 구조 */
.status-app{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:calc(100vh - 180px);border:1px solid #dbe3ec;border-radius:10px;background:#fff;overflow:hidden}.status-controls{display:flex;min-height:0;flex-direction:column;border-right:1px solid #dbe3ec;background:#f6f8fb}.status-control-section{padding:13px;border-bottom:1px solid #dfe6ee}.status-control-title{margin-bottom:9px;color:#53657b;font-size:11px;font-weight:900;letter-spacing:.04em}.status-control-buttons{display:grid;gap:7px}.status-control-buttons.two{grid-template-columns:1fr 1fr}.status-control-buttons button{width:100%}.status-filter-panel{display:none;gap:9px;margin-top:10px}.status-filter-panel.is-open{display:grid}.status-filter-panel label{display:grid;gap:5px;color:#56697f;font-size:11px;font-weight:800}.status-filter-panel input,.status-batch-row input,.drawer-grid input,.drawer-grid textarea{width:100%;border:1px solid #cfd9e5;border-radius:7px;background:#fff;padding:9px 10px;color:#26384b}.status-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.status-summary-grid>div{border:1px solid #dfe6ee;border-radius:7px;background:#fff;padding:9px}.status-summary-grid span{display:block;color:#738398;font-size:10px}.status-summary-grid strong{display:block;margin-top:3px;color:#26384c;font-size:17px}.status-summary-grid .changed strong{color:#b05b13}.status-selection-badge,.status-change-badge{display:block;margin-bottom:8px;border-radius:999px;background:#e7edf5;padding:6px 10px;color:#4e627a;font-size:11px;font-weight:900;text-align:center}.status-change-badge.active{background:#fff0ce;color:#8a5b00}.status-batch-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:6px;margin-top:7px}.status-save-zone{margin-top:auto;padding:13px;border-top:1px solid #dfe6ee;background:#fff}.status-source{display:grid;gap:2px;margin-bottom:7px}.status-source strong{font-size:11px}.status-source span{color:#798a9e;font-size:10px}.status-message{min-height:18px;margin:6px 0;color:#61748b;font-size:11px;line-height:1.45}.status-message.error{color:#a33434}.status-message.success{color:#257045}.status-main{display:flex;min-width:0;flex-direction:column}.status-workspace-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #e0e6ed;background:#fff}.status-search-box{display:grid;grid-template-columns:24px minmax(180px,1fr) 30px;align-items:center;width:min(680px,100%);border:1px solid #cfd9e5;border-radius:8px;background:#fff}.status-search-box input{min-width:0;border:0;outline:0;padding:10px 4px}.status-search-box>span{color:#77899e;text-align:center}.status-search-box button{border:0;background:transparent;color:#75879b;font-size:18px}.status-legend{display:flex;gap:11px;white-space:nowrap;color:#64758a;font-size:11px}.status-legend span{display:flex;align-items:center;gap:5px}.status-legend i{width:9px;height:9px;border-radius:50%}.status-legend .overdue{background:#f4cccc}.status-legend .near{background:#fff2cc}.status-legend .week{background:#d9eaf7}.status-table-wrap{position:relative;flex:1;min-height:0;overflow:auto}.status-table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0}.status-table th,.status-table td{border-bottom:1px solid #e7ecf2;padding:8px 9px;text-align:left;font-size:12px;vertical-align:middle;white-space:nowrap}.status-table th{position:sticky;top:0;z-index:4;background:#f4f7fa;color:#52667d;font-weight:900}.status-table .check{width:38px;text-align:center}.status-table td.wrap{max-width:230px;white-space:normal;line-height:1.4}.status-table td.memo{max-width:250px}.status-data-row:hover{background:#f8fbff}.status-data-row.is-changed{background:#fff8e7}.status-group td{background:#eef3f8;color:#41566f;font-size:11px;font-weight:800}.status-group.due td{position:sticky;top:35px;z-index:3;background:#dfe9f3}.status-group.client td{background:#edf3f8}.status-group td[colspan] strong{margin-right:9px}.status-group td[colspan] span{color:#74869a}.table-button{border:1px solid #cbd6e2;border-radius:6px;background:#fff;padding:5px 8px;color:#3c5875;font-size:11px}.material-status-badge,.delivery-pill{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.status-material{background:#d9ead3;color:#2d6638}.status-in{background:#d9d2e9;color:#5a4175}.status-outsource{background:#e1e1e1;color:#4f4f4f}.delivery-green{background:#d9ead3;color:#2d6638}.delivery-blue{background:#d9eaf7;color:#2e5d83}.delivery-yellow{background:#fff2cc;color:#765f18}.delivery-orange{background:#fce5cd;color:#7d4d20}.delivery-red{background:#f4cccc;color:#8a3232}.delivery-purple{background:#d9d2e9;color:#5a4175}.delivery-gray{background:#e6e6e6;color:#555}.due-overdue{background:#f4cccc}.due-near{background:#fff2cc}.due-week{background:#d9eaf7}.status-empty{display:grid;place-items:center;gap:5px;padding:70px;color:#7a8a9d}.status-empty span{font-size:12px}.status-drawer-backdrop,.status-photo-backdrop{position:fixed;inset:0;z-index:150;background:rgba(12,27,46,.55)}.status-drawer-backdrop[hidden],.status-photo-backdrop[hidden]{display:none}.status-drawer{position:absolute;top:0;right:0;display:flex;width:min(520px,100%);height:100%;flex-direction:column;background:#fff;box-shadow:-15px 0 45px rgba(0,0,0,.2)}.status-drawer>header,.status-drawer>footer,.status-photo-modal>header{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #e0e6ed}.status-drawer>footer{margin-top:auto;border-top:1px solid #e0e6ed;border-bottom:0}.status-drawer h3{margin:3px 0 0}.status-drawer small{color:#73859a}.drawer-close,.photo-close{border:0;background:transparent;font-size:26px}.status-drawer-body{padding:18px;overflow:auto}.drawer-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.drawer-summary>div{border:1px solid #e0e6ed;border-radius:7px;padding:10px}.drawer-summary span{display:block;color:#718399;font-size:10px}.drawer-summary strong{display:block;margin-top:3px;font-size:12px}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drawer-grid label{display:grid;gap:6px;color:#53677d;font-size:11px;font-weight:900}.drawer-grid .full{grid-column:1/-1}.drawer-grid textarea{min-height:110px;resize:vertical}.drawer-photo-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;border:1px solid #dfe6ee;border-radius:8px;padding:12px}.drawer-photo-box>div{display:grid;gap:3px}.drawer-photo-box span{color:#7a8a9d;font-size:10px}.status-photo-modal{width:min(720px,calc(100% - 30px));max-height:88vh;margin:6vh auto;background:#fff;border-radius:11px;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.25)}.photo-target,.photo-status{padding:12px 18px;color:#61758c;font-size:12px}.photo-actions{display:flex;gap:8px;padding:0 18px 14px}.photo-list{display:grid;gap:7px;padding:0 18px 18px}.photo-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dfe6ee;border-radius:8px;padding:10px}.photo-item>div{display:grid;gap:3px}.photo-item span{color:#7a8b9e;font-size:10px}.photo-item.error{border-color:#e5b8b8;background:#fff5f5}.status-empty-inline{padding:24px;color:#7b8b9e;text-align:center}

@media(max-width:1100px){.status-app{grid-template-columns:230px minmax(0,1fr)}.status-legend{display:none}}
@media(max-width:760px){.topbar{grid-template-rows:auto 40px 36px;padding:10px 12px 0}.major-nav-button{padding:0 13px}.secondary-nav-button{padding:0 12px}.status-app{display:block}.status-controls{border-right:0}.status-control-section{display:none}.status-control-section:first-child,.status-save-zone{display:block}.status-main{min-height:65vh}.drawer-summary,.drawer-grid{grid-template-columns:1fr}.drawer-grid .full{grid-column:auto}}

/* V11: Apps Script 통합 화면 구조를 따른 자재·외주현황 작업영역 */
.status-app{grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 184px)}
.status-controls{background:#f7f9fc}
.status-control-section{padding:11px 10px}
.status-save-zone{padding:10px}
.status-workspace-top{align-items:stretch;padding:9px 11px}
.status-workspace-tools{display:flex;min-width:0;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px}
.status-summary-strip{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.status-summary-strip>span{display:inline-flex;align-items:center;gap:4px;border:1px solid #dce4ed;border-radius:999px;background:#f8fafc;padding:4px 8px;color:#66798f;font-size:10px;white-space:nowrap}
.status-summary-strip strong{color:#253b53;font-size:11px}
.status-summary-strip .changed strong{color:#a65a0e}
.status-table th,.status-table td{padding:7px 7px}
.status-control-buttons .primary-button,.status-control-buttons .secondary-button{min-height:34px}
@media (max-width:1100px){.status-workspace-top{flex-direction:column}.status-workspace-tools{align-items:flex-start}.status-summary-strip{justify-content:flex-start}}
@media (max-width:820px){.status-app{grid-template-columns:1fr}.status-controls{border-right:0;border-bottom:1px solid #dbe3ec}.status-save-zone{margin-top:0}.status-workspace-tools{width:100%}}

/* V11 자재·외주현황 사진 선택·대기 상태 */
.status-photo-open.pending{border-color:#e0a63d;background:#fff7df;color:#7d5700}
.photo-selection{display:grid;gap:7px;padding:0 18px 14px}
.photo-selected-item{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;border:1px solid #dfe6ee;border-radius:8px;background:#f8fafc;padding:8px 10px}
.photo-selected-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;color:#334a63}
.photo-selected-item small{color:#74869a}
.photo-selected-item button{border:0;background:transparent;color:#6f8196;font-size:18px}
.photo-footer{display:flex;justify-content:flex-end;gap:8px;padding:0 18px 18px}
.status-summary-strip .source-pending strong{color:#2e6a9f}
.status-data-row.is-source-pending{background:#eef7ff}
.status-data-row.is-source-pending.is-changed{background:#fff4d9}


/* V12: 자재·외주현황 실무 가독성·공간 효율 보정 */
.status-app{
  position:relative;
  grid-template-columns:238px minmax(0,1fr);
  min-height:calc(100vh - 184px);
  overflow:visible;
}
.status-controls{
  min-height:0;
  overflow-y:auto;
  padding:12px;
  gap:12px;
  background:#143958;
  color:#fff;
}
.status-control-section{
  display:grid;
  gap:9px;
  padding:0;
  border:0;
}
.status-control-title{
  margin:0;
  color:#eaf3fa;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
}
.status-control-buttons{gap:7px}
.status-control-buttons.two{gap:7px}
.status-control-buttons .primary-button,
.status-control-buttons .secondary-button{
  min-height:32px;
  padding:6px 9px;
  border-radius:6px;
  font-size:14px;
}
.status-controls .secondary-button{background:#e8edf4;color:#24364d}
.status-controls .primary-button{background:#194f86;color:#fff}
.status-selection-badge,.status-change-badge{
  min-height:34px;
  margin:0;
  padding:8px 9px;
  border-radius:7px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:13px;
  line-height:18px;
}
.status-change-badge.active{background:#fff0ce;color:#8a5b00}
.status-batch-row{
  grid-template-columns:minmax(0,1fr) 56px;
  gap:5px;
  margin-top:5px;
}
.status-batch-row .custom-select-display,
.status-batch-row input{
  min-height:32px;
  padding:6px 8px;
  font-size:14px;
}
.status-batch-row button{min-height:32px;padding:5px;font-size:13px}
.status-save-zone{
  display:grid;
  gap:8px;
  margin-top:auto;
  padding:0;
  border:0;
  background:transparent;
}
.status-save-zone::before{content:'변경사항 저장';color:#eaf3fa;font-size:12px;font-weight:800;line-height:1.25}
.status-source-line{
  display:block;
}
.status-source{min-width:0;margin:0;gap:1px}
.status-source strong,.status-source span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.status-source strong{font-size:13px;color:#fff}
.status-source span{font-size:12px;color:#b8cce0}
.status-message{
  min-height:20px;
  max-height:66px;
  margin:6px 0;
  overflow:auto;
  color:#d4e2ef;
  font-size:13px;
  line-height:1.35;
  white-space:normal;
}
.status-message.error{color:#ffd0d0}
.status-message.success{color:#c7f0d7}
.status-filter-panel{
  position:absolute;
  left:244px;
  top:8px;
  z-index:45;
  display:none;
  width:310px;
  max-height:calc(100vh - 210px);
  gap:8px;
  margin:0;
  padding:12px;
  overflow:auto;
  border:1px solid #c6d3e0;
  border-radius:9px;
  color:#25394f;
  background:#fff;
  box-shadow:0 16px 42px rgba(17,37,62,.24);
}
.status-filter-panel.is-open{display:grid}
.status-filter-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e7ee;padding-bottom:7px;font-size:15px}
.status-filter-close{border:0;background:transparent;color:#60758b;font-size:22px;line-height:1}
.status-filter-panel label{gap:5px;color:#445b72;font-size:13px}
.status-filter-panel .custom-select-display,
.status-filter-panel input{min-height:36px;padding:7px 9px;font-size:14px}
.status-workspace-top{gap:10px;padding:9px 10px}
.status-search-box{width:min(760px,100%);min-height:40px}
.status-search-box input{padding:9px 5px;font-size:14px}
.status-search-box>span{font-size:15px}
.status-summary-strip>span{padding:5px 9px;font-size:12px}
.status-summary-strip strong{font-size:13px}
.status-legend{font-size:12px}
.status-table-wrap{border-top:1px solid #e0e6ed}
.status-table{
  min-width:1320px;
  table-layout:fixed;
}
.status-table col.col-check{width:44px}
.status-table col.col-status{width:92px}
.status-table col.col-contract{width:128px}
.status-table col.col-product{width:210px}
.status-table col.col-item{width:300px}
.status-table col.col-delivery{width:106px}
.status-table col.col-location{width:132px}
.status-table col.col-owner{width:112px}
.status-table col.col-memo{width:170px}
.status-table col.col-photo{width:96px}
.status-table col.col-edit{width:66px}
.status-table th,.status-table td{
  padding:9px 8px;
  font-size:14px;
  line-height:1.35;
}
.status-table th{height:40px;font-size:13px;text-align:center}
.status-table .check{text-align:center}
.status-table td.wrap{max-width:none;white-space:normal;word-break:keep-all}
.status-table td.memo{max-width:none}
.status-data-row{min-height:54px}
.status-group td{padding:8px;font-size:14px}
.status-group td[colspan] strong{font-size:15px}
.status-group td[colspan] span{font-size:13px}
.status-group.due.is-undated td{background:#eceff3;color:#596b7e}
.material-status-badge,.delivery-pill{padding:5px 9px;font-size:13px}
.table-button{min-height:34px;padding:6px 9px;font-size:13px;font-weight:800}
.drawer-summary span,.drawer-photo-box span,.photo-item span{font-size:12px}
.drawer-summary strong,.drawer-grid label,.photo-target,.photo-status{font-size:14px}
.drawer-grid input,.drawer-grid textarea,.drawer-grid .custom-select-display{font-size:14px}
@media(max-width:1100px){
  .status-app{grid-template-columns:226px minmax(0,1fr)}
  .status-filter-panel{left:232px}
  .status-table{min-width:1220px}
  .status-table col.col-memo{width:120px}
}
@media(max-width:820px){
  .status-app{display:block;min-height:auto}
  .status-controls{border-bottom:1px solid #dbe3ec}
  .status-filter-panel{position:static;width:auto;max-height:none;margin-top:7px;border-color:rgba(255,255,255,.16);box-shadow:none}
  .status-save-zone{margin-top:0}
  .status-table th,.status-table td{font-size:13px}
}

/* V13: 자재·외주현황 화면 고정 + 우측 목록 내부 스크롤 + 가로 스크롤 제거 */
body.status-page-active{overflow:hidden}
body.status-page-active .app-shell{height:100vh;min-height:0;overflow:hidden}
body.status-page-active .main-area{display:flex;min-width:0;height:100vh;min-height:0;flex-direction:column;overflow:hidden}
body.status-page-active .topbar{flex:0 0 auto}
body.status-page-active .workspace{flex:1;min-width:0;min-height:0;padding:0;overflow:hidden}
body.status-page-active .view.is-active{height:100%;min-width:0;min-height:0;overflow:hidden}
body.status-page-active .status-app{height:100%;min-height:0;overflow:hidden}
body.status-page-active .status-controls{height:100%;overflow-y:auto;overflow-x:hidden}
body.status-page-active .status-main{min-width:0;min-height:0;overflow:hidden}
body.status-page-active .status-workspace-top{flex:0 0 auto}
body.status-page-active .status-table-wrap{flex:1;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
body.status-page-active .status-table{width:100%;min-width:0;table-layout:fixed}
body.status-page-active .status-table col.col-check{width:3%}
body.status-page-active .status-table col.col-status{width:7%}
body.status-page-active .status-table col.col-contract{width:8%}
body.status-page-active .status-table col.col-product{width:13%}
body.status-page-active .status-table col.col-item{width:21%}
body.status-page-active .status-table col.col-delivery{width:8%}
body.status-page-active .status-table col.col-location{width:9%}
body.status-page-active .status-table col.col-owner{width:8%}
body.status-page-active .status-table col.col-memo{width:9%}
body.status-page-active .status-table col.col-photo{width:8%}
body.status-page-active .status-table col.col-edit{width:6%}
body.status-page-active .status-table th,
body.status-page-active .status-table td{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.status-page-active .status-table td.wrap,
body.status-page-active .status-table td.memo{display:table-cell;overflow:hidden;white-space:normal;word-break:break-word;line-height:1.35}
body.status-page-active .status-table .table-button{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.status-page-active .status-table .status-photo-cell{padding-left:4px;padding-right:4px;text-align:center;overflow:visible}
body.status-page-active .status-photo-open{display:inline-flex;width:100%;min-width:0;align-items:center;justify-content:center;gap:4px;padding-left:4px;padding-right:4px;overflow:visible;text-overflow:clip;white-space:nowrap}
body.status-page-active .status-photo-open span{min-width:0;overflow:visible;text-overflow:clip;white-space:nowrap}
body.status-page-active .status-photo-open small{display:inline-grid;min-width:17px;height:17px;place-items:center;border-radius:999px;background:#e0a63d;color:#fff;font-size:10px;line-height:1}
body.status-page-active .status-group td{overflow:visible;text-overflow:clip}
.status-source .status-ecount-state{color:#9fc2e0}
@media(max-width:1100px){
  body.status-page-active .status-table th,body.status-page-active .status-table td{padding:7px 5px;font-size:12px}
  body.status-page-active .status-table col.col-memo{width:8%}
  body.status-page-active .status-table col.col-item{width:24%}
}
@media(max-width:820px){
  body.status-page-active{overflow:auto}
  body.status-page-active .app-shell,body.status-page-active .main-area{height:auto;overflow:visible}
  body.status-page-active .workspace,body.status-page-active .view.is-active,body.status-page-active .status-app{height:auto;overflow:visible}
  body.status-page-active .status-table-wrap{max-height:65vh;overflow-y:auto;overflow-x:hidden}
  body.status-page-active .status-table th,body.status-page-active .status-table td{font-size:11px;padding:6px 3px}
}

.migration-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.migration-result{border:1px solid var(--line,#d7dde5);border-radius:10px;padding:16px;min-height:84px;background:#f8fafc}.migration-ok{border-color:#7fc79b;background:#f1fbf5}.migration-blocked{border-color:#e4a6a6;background:#fff6f6}.migration-compare-grid{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px}.migration-compare-grid>div{border:1px solid #dfe5ec;border-radius:8px;padding:10px;background:#fff}.migration-compare-grid span{display:block;font-size:12px;color:#667085}.migration-compare-grid strong{display:block;margin-top:4px;font-size:20px}.error-text{color:#b42318}.success-text{color:#067647}@media(max-width:1100px){.migration-compare-grid{grid-template-columns:repeat(3,minmax(90px,1fr))}}

/* V41 업무현황 · 주별 업무현황 : 기존 Apps Script PC 화면 복원 */
.work-status-shell{display:grid;grid-template-columns:210px minmax(0,1fr);height:100%;min-height:0;background:#edf1f5;color:#17212b}
.work-status-controls{background:#143958;color:#fff;padding:10px;display:flex;flex-direction:column;gap:12px;min-height:0}
.work-control-block{display:grid;gap:9px}.work-control-block>strong{font-size:13px}.work-control-block label{display:grid;gap:5px;font-size:12px;font-weight:700}
.work-control-block input{width:100%;height:36px;border:0;border-radius:6px;padding:0 9px;font-size:12px}.work-status-controls .custom-select-display{min-height:36px;font-size:12px}
.work-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px}.work-summary div{background:rgba(255,255,255,.1);border-radius:7px;padding:8px}.work-summary span{display:block;font-size:11px}.work-summary strong{font-size:18px}
.work-source-state{margin-top:auto;font-size:11px;line-height:1.5;color:#d8e8f5}.work-projection-state{font-size:11px;line-height:1.45;color:#c5dced;margin:0}
.work-status-main{min-width:0;min-height:0;overflow:hidden;padding:8px;display:flex;flex-direction:column;gap:7px}
.work-status-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:9px;min-height:34px}.work-loaded-at{font-size:11px;color:#607080}.work-status-toolbar button{height:32px;padding:0 12px;font-size:12px}
.ws-data-viewport{flex:1;min-width:0;min-height:0;overflow:auto;border:1px solid #cfd8e1;border-radius:9px;background:#dfe6ec;scrollbar-gutter:stable;overflow-anchor:none}
.work-status-list{min-height:100%}.ws-company-section,.ws-week-section{background:#fff}.ws-company-section{min-width:1260px}.ws-week-section{width:100%;min-width:0}
.ws-company-section+.ws-company-section,.ws-week-section+.ws-week-section{border-top:8px solid #dfe6ec}
.ws-company-bar,.ws-week-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:7px 12px;color:#fff;background:#17385f;border-bottom:1px solid #102b49}
.ws-week-bar{background:#2f557c}.ws-company-bar strong,.ws-week-bar strong{font-size:17px;font-weight:900}.ws-count-pill{padding:3px 9px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;font-weight:900}
.ws-task-section{border-bottom:1px solid #bcc8d2}.ws-task-section:last-child{border-bottom:0}.ws-task-bar{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:6px 10px;border-left:5px solid #2e6bb2;border-bottom:1px solid #c8d7e5;background:#eaf2fb;color:#193f6b}.ws-task-bar strong{font-size:15px;font-weight:900}.ws-task-bar span{font-size:12px;font-weight:900}
.ws-current-grid,.ws-weekly-grid{display:grid}.ws-current-grid{grid-template-columns:92px 110px 82px 92px 112px minmax(280px,1.55fr) minmax(220px,1.1fr) 105px 86px 96px;min-width:1260px}.ws-weekly-grid{width:100%;min-width:0;grid-template-columns:minmax(0,10fr) minmax(0,14fr) minmax(0,6.5fr) minmax(0,7fr) minmax(0,5.5fr) minmax(0,6fr) minmax(0,17fr) minmax(0,14fr) minmax(0,7fr) minmax(0,6fr) minmax(0,7fr)}
.ws-table-head{position:sticky;top:42px;z-index:15;min-height:34px;border-bottom:1px solid #bcc7d0;background:#f1f4f6;color:#465462;font-size:12px;font-weight:900;text-align:center}
.ws-table-head>div,.ws-record-row>div{display:flex;align-items:center;justify-content:center;min-width:0;padding:6px 7px;border-right:1px solid #e4e9ee}.ws-table-head>div:last-child,.ws-record-row>div:last-child{border-right:0}
.ws-record-wrap{background:#fff}.ws-record-wrap:nth-child(odd){background:#fbfcfd}.ws-record-row{min-height:46px;border-bottom:1px solid #e4e9ee;cursor:pointer;font-size:13px;line-height:1.35}.ws-record-row:hover{background:#f1f6fb}.ws-record-row .left{justify-content:flex-start;text-align:left;white-space:pre-wrap;word-break:break-word}.ws-record-row .owner{color:#25704a;font-weight:900}.ws-record-wrap.company-start .ws-record-row{border-top:2px solid #98adc0}
.ws-merge-anchor,.ws-merge-continuation{position:relative;background:var(--merge-bg,#f3f7fa);font-weight:900}.ws-merge-owner{--merge-bg:#e8f4ed;color:#205f3f}.ws-merge-category{--merge-bg:#f3f7fa;color:#394a58}.ws-merge-category.category-notice{--merge-bg:#fff59d;color:#5f5200}.ws-merge-category.category-admin{--merge-bg:#d9d2e9;color:#40365f}.ws-merge-category.category-sales{--merge-bg:#cfe2f3;color:#234f73}.ws-merge-category.category-it{--merge-bg:#c9daf8;color:#244f87}.ws-merge-category.category-design{--merge-bg:#d0e0e3;color:#31555d}.ws-merge-category.category-material{--merge-bg:#d9ead3;color:#315b27}.ws-merge-category.category-production{--merge-bg:#ffe599;color:#6a5100}.ws-merge-category.category-management{--merge-bg:#fce5cd;color:#794514}.ws-merge-category.category-external{--merge-bg:#f4cccc;color:#7c302d}.ws-merge-category.category-other{--merge-bg:#ead1dc;color:#6d384e}
.ws-merge-continuation{color:transparent!important;user-select:none}.ws-merge-continuation::before{position:absolute;z-index:2;top:-2px;right:0;left:0;height:3px;background:var(--merge-bg,#f3f7fa);content:"";pointer-events:none}.ws-merge-edit-excluded{cursor:default}
.ws-cell-pill{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:2px 8px;border:1px solid #c7d1da;border-radius:999px;background:#f3f5f7;font-size:11px;font-weight:900;white-space:nowrap}.ws-cell-pill.status-ready{color:#52606c;border-color:#c7d0d8;background:#edf1f4}.ws-cell-pill.status-progress{color:#22613f;border-color:#acd0b8;background:#e3f2e8}.ws-cell-pill.done{color:#20507c;border-color:#9db9df;background:#dce9fa}.ws-cell-pill.cancel{color:#a52c27;border-color:#e2aaa7;background:#fde7e5}.ws-cell-pill.plan{color:#4d5964;border-color:#c7d0d8;background:#f0f3f5}.ws-cell-pill.plan-urgent{color:#922b25;border-color:#e0aaa5;background:#f8d8d5}.ws-cell-pill.plan-morning{color:#914c13;border-color:#e7bd94;background:#fce5cd}.ws-cell-pill.plan-today{color:#765800;border-color:#e2c45d;background:#fff2cc}.ws-cell-pill.plan-week{color:#245b88;border-color:#a9c6df;background:#d9eaf7}.ws-cell-pill.plan-next-week{color:#35612c;border-color:#afd0a5;background:#d9ead3}.ws-cell-pill.plan-next-month{color:#5b3c78;border-color:#cbb4df;background:#eadcf8}
.ws-status-cell.status-ready{background:#f7f9fa}.ws-status-cell.status-progress{background:#f3faf5}.ws-plan-cell.plan-urgent{background:#fff5f4}.ws-plan-cell.plan-morning{background:#fff9f4}.ws-plan-cell.plan-today{background:#fffdf3}.ws-plan-cell.plan-week{background:#f4f9fd}.ws-plan-cell.plan-next-week{background:#f4faf2}.ws-plan-cell.plan-next-month{background:#faf6fd}
.ws-required-mark{flex:0 0 auto;margin-right:5px;padding:1px 5px;border-radius:999px;color:#9c4900;background:#ffead8;font-size:10px;font-weight:900}.work-mirror-badge{display:inline-block;flex:0 0 auto;margin-left:6px;padding:2px 5px;border-radius:4px;font-size:10px;font-weight:700}.work-mirror-badge.pending{background:#fff0b8;color:#6f5200}.work-mirror-badge.error{background:#f3d0d0;color:#9a1111}.ws-record-wrap.has-source-error .ws-record-row{background:#fff3f3}
.ws-history-panel{display:grid;padding:0;border-bottom:1px solid #b9cde4;background:#edf5ff;color:#2d455e;cursor:pointer;overflow-anchor:none;word-break:break-word}.ws-current-history{grid-template-columns:92px 110px 82px 92px 112px minmax(280px,1.55fr) minmax(220px,1.1fr) 105px 86px 96px;min-width:1260px}.ws-weekly-history{width:100%;min-width:0;grid-template-columns:minmax(0,10fr) minmax(0,14fr) minmax(0,6.5fr) minmax(0,7fr) minmax(0,5.5fr) minmax(0,6fr) minmax(0,17fr) minmax(0,14fr) minmax(0,7fr) minmax(0,6fr) minmax(0,7fr)}.ws-current-history .ws-history-content{grid-column:3/-1}.ws-weekly-history .ws-history-content{grid-column:5/-1}.ws-history-content{min-width:0;padding:4px 8px 5px;border-left:1px solid #e4e9ee}.ws-history-content strong{display:block;margin:0 0 2px;color:#1f568f}.ws-history-body{white-space:pre-wrap;word-break:break-word}
.ws-empty-state,.ws-loading-state,.ws-error-state{margin:18px;padding:30px;border-radius:9px;background:#fff;text-align:center;font-weight:800}.ws-error-state{color:#a52c27;border:1px solid #e0aaa7;background:#fdebea;text-align:left;white-space:pre-wrap}.work-load-more{display:flex;justify-content:center;min-height:40px;padding:0}.work-load-more button{min-width:220px;height:36px;font-size:12px}.work-edit-form textarea{resize:vertical}.work-edit-form small{display:block;color:#8b5a00;margin-top:4px}
.status-page-active .workspace>.view[data-route="work-status"],.status-page-active .workspace>.view[data-route="weekly-work-status"]{padding:0;height:100%;overflow:hidden}
.work-status-shell.is-weekly .ws-data-viewport{overflow-x:hidden;overflow-y:auto}
.work-status-shell.is-weekly .ws-table-head>div,.work-status-shell.is-weekly .ws-record-row>div{padding-right:5px;padding-left:5px}
.work-status-shell.is-weekly .ws-record-row .company,.work-status-shell.is-weekly .ws-record-row .task,.work-status-shell.is-weekly .ws-record-row .left{white-space:normal;overflow-wrap:anywhere;word-break:keep-all}
.work-status-shell.is-weekly .ws-record-row>div:nth-child(5),.work-status-shell.is-weekly .ws-record-row>div:nth-child(6),.work-status-shell.is-weekly .ws-record-row>div:nth-child(n+9){white-space:nowrap}
@media(max-width:1100px){.work-status-shell{grid-template-columns:195px minmax(0,1fr)}.ws-record-row{font-size:12px}}
@media(max-width:900px){.work-status-shell{grid-template-columns:1fr;height:auto}.work-status-controls{position:static}.work-status-main{min-height:70vh}.ws-data-viewport{max-height:70vh}}

/* V18 업무관리부 */
body.work-manage-page-active{overflow:hidden}
body.work-manage-page-active .app-shell{height:100vh;min-height:0;overflow:hidden}
body.work-manage-page-active .main-area{display:flex;height:100vh;min-height:0;flex-direction:column;overflow:hidden}
body.work-manage-page-active .workspace{flex:1;min-width:0;min-height:0;padding:0;overflow:hidden}
body.work-manage-page-active .view.is-active{height:100%;min-height:0;overflow:hidden}
.work-manage-shell{display:grid;grid-template-columns:220px minmax(0,1fr);height:100%;min-height:0;background:#eef3f8}
.work-manage-controls{background:#143958;color:#fff;padding:11px;display:flex;flex-direction:column;gap:13px;min-height:0}
.work-manage-filter{display:grid;gap:9px}.work-manage-filter>strong{font-size:13px}.work-manage-filter label{display:grid;gap:5px;font-size:12px}
.work-manage-filter input{width:100%;border:0;border-radius:6px;padding:9px}.work-manage-controls .custom-select-display{min-height:36px}
.work-manage-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.work-manage-summary div{background:rgba(255,255,255,.1);border-radius:7px;padding:9px}.work-manage-summary span{display:block;font-size:11px}.work-manage-summary strong{font-size:18px}
.wm-primary-state{margin-top:auto;font-size:11px;line-height:1.5;color:#d8e8f5}
.work-manage-main{min-width:0;min-height:0;overflow:hidden;padding:10px;display:flex;flex-direction:column;gap:8px}
.work-manage-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.work-manage-toolbar>div{display:flex;gap:7px}
.work-manage-table-wrap{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid #cdd8e2;background:#fff}
.work-manage-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:13px}
.work-manage-table th{position:sticky;top:0;z-index:2;background:#e7eef5;font-size:12px;font-weight:800}.work-manage-table th,.work-manage-table td{border:1px solid #dfe6ed;padding:7px 5px;text-align:center;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-manage-table td.left{text-align:left;white-space:normal;word-break:break-word;line-height:1.35}.work-manage-table tr:hover td{background:#f5f9fc}
.work-manage-table .wm-col-owner{width:70px}.work-manage-table .wm-col-category{width:78px}.work-manage-table .wm-col-plan{width:70px}.work-manage-table .wm-col-company{width:92px}.work-manage-table .wm-col-task{width:136px}.work-manage-table .wm-col-deadline{width:80px}.work-manage-table .wm-col-status{width:72px}.work-manage-table .wm-col-content{width:auto}.work-manage-table .wm-col-daily,.work-manage-table .wm-col-required{width:42px}.work-manage-table .wm-col-attachment{width:68px}.work-manage-table .wm-col-manage{width:90px}
.wm-source{display:inline-block;padding:2px 5px;border-radius:5px;font-size:10px;font-weight:800}.wm-source.done{background:#dcebd7;color:#22551d}.wm-source.pending{background:#fff0b8;color:#6f5200}.wm-source.error{background:#f3d0d0;color:#941313}
.wm-detail.has-data{border-color:#8fc4a0;background:#edf8f0;color:#217a45}.wm-detail.empty-data{border-color:#d6c28f;background:#fff9e8;color:#8a6100}.wm-detail-wait{font-size:10px;color:#8b5a00}.wm-more{text-align:center;padding:8px}.wm-form small{color:#667085}.inline-link{display:inline-block;text-decoration:none}.modal.wm-detail-modal{width:min(1160px,calc(100vw - 48px));height:min(710px,92vh);min-height:560px}.modal.wm-detail-modal .modal-body{display:flex;min-height:0;flex-direction:column;gap:12px}.wm-detail-head{display:flex;align-items:stretch;justify-content:space-between;gap:10px}.wm-detail-summary{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(200px,1.5fr) auto;align-items:center;gap:10px;min-width:0;flex:1;padding:9px 11px;border:1px solid #d6e2ec;border-radius:8px;background:#f4f9fd}.wm-detail-filters{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:6px;min-width:min(430px,46%)}.wm-detail-filters .custom-select{min-width:0;height:100%}.wm-detail-summary strong{font-size:14px}.wm-detail-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800}.wm-detail-summary small{color:#667085;font-size:12px}.wm-detail-table-wrap{min-height:0;flex:1;overflow:auto;border:1px solid #d2dde7}.wm-detail-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed;font-size:13px}.wm-detail-table th{position:sticky;top:0;z-index:2;background:#e7eef5;font-size:12px}.wm-detail-table th,.wm-detail-table td{border:1px solid #dce4eb;padding:9px 8px;text-align:center;vertical-align:middle}.wm-detail-table th:nth-child(1){width:105px}.wm-detail-table th:nth-child(2){width:auto}.wm-detail-table th:nth-child(3){width:92px}.wm-detail-table th:nth-child(4),.wm-detail-table th:nth-child(5){width:82px}.wm-detail-table th:nth-child(6){width:92px}.wm-detail-table th:nth-child(7){width:70px}.wm-detail-table td.left{text-align:left;white-space:normal;word-break:break-word;line-height:1.45}.wm-detail-table .wm-detail-row{cursor:pointer}.wm-detail-table .wm-detail-row:nth-child(even) td{background:#f7f9fb}.wm-detail-table .work-pill{display:inline-flex;justify-content:center;min-width:58px}.wm-detail-table td{color:#26384a}.wm-detail-table td:nth-child(2){font-weight:650}.wm-detail-table .wm-detail-row:hover td,.wm-detail-table .wm-detail-row:focus td{background:#eaf3ff;outline:0}
.fixed-order-panel{height:100%;min-height:0;display:flex;flex-direction:column}.fixed-order-panel .panel-header>div:last-child{display:flex;gap:7px}.fixed-order-list{min-height:0;overflow:auto;display:grid;gap:6px}.fixed-order-row{display:grid;grid-template-columns:34px 42px minmax(0,1fr) 38px 38px;gap:7px;align-items:center;border:1px solid #d7e0e8;border-radius:8px;background:#fff;padding:8px}.fixed-order-row.is-dragging{opacity:.45}.fixed-order-row>div{display:grid}.fixed-order-row small{color:#667085}.drag-handle{font-size:20px;cursor:grab;color:#73879a}
@media(max-width:1000px){.work-manage-shell{grid-template-columns:190px minmax(0,1fr)}.work-manage-table{font-size:12px}.work-manage-table th,.work-manage-table td{padding:6px 3px}.work-manage-table .wm-col-task{width:118px}.work-manage-table .wm-col-manage{width:82px}}
@media(max-width:820px){body.work-manage-page-active{overflow:auto}body.work-manage-page-active .app-shell,body.work-manage-page-active .main-area{height:auto;overflow:visible}body.work-manage-page-active .workspace,body.work-manage-page-active .view.is-active{height:auto;overflow:visible}.work-manage-shell{display:block;height:auto}.work-manage-controls{position:static}.work-manage-table-wrap{max-height:65vh;overflow:auto}.work-manage-table{min-width:1150px}.modal.wm-detail-modal{width:100%;height:min(760px,94vh);min-height:0}.wm-detail-head{display:grid}.wm-detail-summary{grid-template-columns:1fr}.wm-detail-summary span{white-space:normal}.wm-detail-filters{min-width:0;grid-template-columns:1fr}}

/* V18 프로젝트 마스터 세미팝업 */
.project-master-manager{display:flex;flex-direction:column;gap:10px;min-height:520px}.pm-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 190px;gap:10px}.pm-toolbar label{display:grid;gap:5px;font-size:12px;font-weight:700}.pm-toolbar input,.pm-add input,.pm-table input{width:100%;border:1px solid #cbd6e1;border-radius:6px;padding:8px;background:#fff}.pm-add{display:grid;grid-template-columns:minmax(280px,1fr) 100px;gap:8px}.pm-help{margin:0;color:#667085;font-size:12px;line-height:1.45}.pm-summary{display:flex;gap:8px;flex-wrap:wrap}.pm-summary span{background:#edf3f8;border:1px solid #d3dee8;border-radius:999px;padding:5px 10px;font-size:12px}.pm-table-wrap{min-height:0;max-height:55vh;overflow:auto;border:1px solid #d5dfe8}.pm-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.pm-table th{position:sticky;top:0;z-index:2;background:#e8eff5}.pm-table th,.pm-table td{border:1px solid #dde5ec;padding:7px;text-align:center;vertical-align:middle}.pm-table th:nth-child(1){width:125px}.pm-table th:nth-child(2){width:auto}.pm-table th:nth-child(3){width:100px}.pm-table th:nth-child(4){width:70px}.pm-table th:nth-child(5){width:155px}.pm-table td:nth-child(2){text-align:left}.pm-table td:last-child{white-space:nowrap}.pm-table .table-button+.table-button{margin-left:5px}.pm-table tr.is-new td{background:#fff9df}.pm-state{display:inline-block;border-radius:999px;padding:3px 7px;font-weight:800}.pm-state.active{background:#dcebd7;color:#22551d}.pm-state.inactive{background:#e7e9ed;color:#58616b}.pm-table small{display:block;margin-top:3px;color:#7b5c00}.pm-table .code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}@media(max-width:760px){.pm-toolbar,.pm-add{grid-template-columns:1fr}.pm-table{min-width:820px}}
.project-migration-panel{display:grid;gap:14px}.project-migration-panel>p{margin:0;line-height:1.55}.migration-facts{display:flex;gap:8px;flex-wrap:wrap}.migration-facts span{background:#edf3f8;border:1px solid #d4dfe8;border-radius:999px;padding:6px 10px;font-size:12px}.pm-mirror-warning{margin:0;padding:8px 10px;border-left:4px solid #c79300;background:#fff6d8;color:#6f5200;font-size:12px}

/* V18 업무관리부 기반 + V19 열 구성·입력 규칙 유지 + V20 가독성·첨부 이관 보정 */
.work-manage-table tbody .work-data-row{cursor:pointer}
.work-manage-table tbody .work-data-row.is-locked{cursor:default}
.work-manage-table tbody .work-data-row.band-even>td:not(.merged-cell){background:#fff}
.work-manage-table tbody .work-data-row.band-odd>td:not(.merged-cell){background:#f1f5f8}
.work-manage-table tbody .work-data-row:hover>td{background:#eaf3ff!important}
.work-manage-table .merged-cell{vertical-align:top;white-space:normal;word-break:break-word;background:#eef3f7;color:#263b4a;font-size:13px;font-weight:800;padding-top:10px}
.work-manage-table tbody .work-data-row.work-block-start>td{border-top:4px solid #617d93}
.work-manage-table tbody .work-data-row:first-child>td{border-top:0!important}
.work-manage-table tbody .work-data-row.work-block-end>td{border-bottom:4px solid #617d93}
.work-manage-table .work-block-ending-cell{border-bottom:4px solid #617d93!important}
.work-manage-table tbody .work-data-row.work-category-start:not(.work-block-start)>td{border-top:2px solid #9cabb7}
.work-manage-table tbody .work-data-row.work-plan-start:not(.work-category-start)>td{border-top:1px solid #bcc8d1}
.work-manage-table .owner-block-cell{border-left:2px solid #617d93;background:#e9f1f8;color:#153f68;font-size:14px;font-weight:900;box-shadow:inset 5px 0 0 #4f7fa7}
.work-manage-table .work-category-cell{background:#f1f5f8;color:#344b5d;font-weight:900}
.work-manage-table .work-plan-cell{background:#eef3f7}
.work-manage-table .work-company-cell{color:#244d70;font-weight:800}
.work-manage-table .work-task-cell{color:#17212b;font-weight:900}
.work-manage-table .work-deadline-cell{color:#2f4658;font-weight:800}
.work-manage-table .work-status-cell{padding-top:9px}
.work-manage-table .work-pill.plan,.work-manage-table .work-pill.status{min-height:24px;padding:4px 8px;font-weight:900;line-height:1.15}
.wm-project-field-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wm-project-master-inline{flex:0 0 auto;font-weight:800}
.wm-plan-field.is-auto-plan{display:none}
.work-manage-table .wm-col-attachment{overflow:visible;text-overflow:clip}.work-manage-table .wm-col-attachment .table-button{display:inline-flex;min-width:46px;justify-content:center;padding-left:7px;padding-right:7px;white-space:nowrap}

.wm-semi-backdrop{position:fixed;inset:0;z-index:170;background:rgba(10,24,43,.46);display:grid;place-items:center;padding:24px}
.wm-semi-modal{width:min(1080px,calc(100vw - 48px));max-height:88vh;background:#fff;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.3);overflow:hidden}
.wm-semi-modal.wm-detail-editor-modal{width:min(760px,calc(100vw - 48px));max-height:92vh}
.wm-semi-header,.wm-semi-footer{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid #dfe6ed;background:#fff}
.wm-semi-header{justify-content:space-between}.wm-semi-header h3{margin:0;font-size:18px}.wm-semi-close{border:0;background:transparent;font-size:27px;line-height:1;cursor:pointer}
.wm-semi-body{min-height:0;overflow:auto;padding:18px}
.wm-semi-footer{justify-content:flex-end;gap:8px;border-top:1px solid #dfe6ed;border-bottom:0}
.wm-semi-footer>button:first-child:not(:last-child){margin-right:auto}

.custom-multi-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px 2px;color:#667085;font-size:11px}
.custom-multi-clear{border:0;background:transparent;color:#245f8d;padding:3px 4px;font-size:11px;font-weight:800;cursor:pointer}
.custom-multi-option{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px}
.custom-multi-check{width:18px;height:18px;border:1px solid #b9c7d5;border-radius:4px;display:grid;place-items:center;background:#fff;font-size:12px;font-weight:900}
.custom-multi-option.is-selected .custom-multi-check{border-color:#24527f;background:#24527f;color:#fff}
.custom-multi-select .custom-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.fixed-list-table-wrap{overflow-y:auto;overflow-x:hidden}
.fixed-list-table{font-size:13px}
.fixed-list-table th{font-size:12px}.fixed-list-table th,.fixed-list-table td{padding:8px 6px;vertical-align:top;border-color:#d8e1e8}
.fixed-list-table tbody .fixed-list-row{cursor:pointer}
.fixed-list-table tbody .fixed-list-row.fixed-band-even>td:not(.merged-cell){background:#fff}
.fixed-list-table tbody .fixed-list-row.fixed-band-odd>td:not(.merged-cell){background:#f2f6f9}
.fixed-list-table tbody .fixed-list-row.fixed-row-even>td:not(.merged-cell){background:#fff}
.fixed-list-table tbody .fixed-list-row.fixed-row-odd>td:not(.merged-cell){background:#f1f5f8}
.fixed-list-table tbody .fixed-list-row:hover>td{background:#eaf3ff!important}
.fixed-list-table tbody .fixed-list-row.fixed-block-start>td{border-top:4px solid #617d93}
.fixed-list-table tbody .fixed-list-row:first-child>td{border-top:0!important}
.fixed-list-table tbody .fixed-list-row.fixed-block-end>td{border-bottom:4px solid #617d93}
.fixed-list-table .fixed-block-ending-cell{border-bottom:4px solid #617d93!important}
.fixed-list-table .fixed-category-cell{background:#e9f1f8;color:#173f65;font-size:13px;font-weight:900;box-shadow:inset 5px 0 0 #4f7fa7}
.fixed-list-table .fixed-department-cell,.fixed-list-table .fixed-company-cell{background:#f1f5f8;color:#334b5d;font-weight:900}
.fixed-list-table .fixed-task-cell{color:#17212b;font-size:13px;font-weight:900;white-space:normal;word-break:break-word}
.fixed-list-table td.left{vertical-align:top;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.fixed-list-table .fixed-owner-cell{white-space:normal;line-height:1.5;cursor:pointer;position:relative;padding-right:22px}
.fixed-list-table .fixed-owner-cell::after{content:'✎';position:absolute;right:7px;top:8px;color:#6b7f92;font-size:11px;opacity:.72}
.fixed-list-table .fixed-owner-cell:hover,.fixed-list-table .fixed-owner-cell:focus{outline:2px solid #7aa7d2;outline-offset:-2px;background:#e7f2ff!important}
.fixed-list-table .fixed-select-cell{width:38px;min-width:38px;padding:5px 4px;text-align:center;vertical-align:middle}
.fixed-list-table .fixed-select-cell input{width:22px;height:22px;margin:0;cursor:pointer}
.fixed-owner-quick-summary,.fixed-owner-batch-summary{display:grid;gap:5px;margin-bottom:12px;padding:11px 13px;border:1px solid #d7e1ea;border-radius:8px;background:#f7fafc}
.fixed-owner-quick-summary span,.fixed-owner-batch-summary small{color:#667085;font-size:12px}.fixed-owner-batch-summary ul{display:grid;gap:4px;max-height:150px;overflow:auto;margin:4px 0 0;padding-left:18px}.fixed-owner-batch-summary li{font-size:12px}.fixed-owner-batch-summary li small{display:block;margin-top:2px}
.fixed-owner-quick-form .custom-select-popover,.fixed-owner-batch-form .custom-select-popover{z-index:190}
.fixed-list-table .owner-chip{display:inline-block;margin:1px 2px;padding:3px 7px;border-radius:999px;background:#e5eef7;color:#234d70;font-size:10px;font-weight:900}
.fixed-list-table .fixed-order-cell{white-space:normal;vertical-align:middle;padding:5px 4px}
.fixed-list-table .fixed-order-main{display:flex;align-items:center;justify-content:center;gap:4px;min-height:24px}
.fixed-list-table .fixed-order-main .drag-handle{margin:0;line-height:1}
.fixed-list-table .fixed-order-main b{display:inline-block;min-width:22px;text-align:center}
.fixed-list-table .fixed-order-buttons{display:grid;grid-template-columns:repeat(2,28px);justify-content:center;gap:4px;margin-top:4px}
.fixed-list-table .fixed-order-buttons .table-button{width:28px;min-width:28px;height:28px;margin:0;padding:0;display:grid;place-items:center;line-height:1}
.fixed-attachment-field .inline-link{justify-self:start}.fixed-attachment-field small{font-weight:500;color:#667085}
.fixed-list-table .is-dragging{opacity:.45}
.fixed-list-table th:nth-child(1){width:38px}.fixed-list-table th:nth-child(2){width:86px}.fixed-list-table th:nth-child(3){width:78px}.fixed-list-table th:nth-child(4){width:72px}.fixed-list-table th:nth-child(5){width:82px}.fixed-list-table th:nth-child(6){width:42px}.fixed-list-table th:nth-child(7){width:128px}.fixed-list-table th:nth-child(8){width:auto}.fixed-list-table th:nth-child(9){width:50px}.fixed-list-table th:nth-child(10),.fixed-list-table th:nth-child(11){width:132px}.fixed-list-table th:nth-child(12){width:110px}.fixed-list-table th:nth-child(13){width:60px}
.fixed-edit-form .custom-select-popover{z-index:185}

@media(max-width:1000px){
  .work-manage-table .wm-col-task{width:118px}.work-manage-table .wm-col-manage{width:82px}
  .fixed-list-table{min-width:1220px}.fixed-list-table-wrap{overflow-x:auto}
}
@media(max-width:820px){
  .wm-semi-backdrop{padding:10px}.wm-semi-modal{width:100%;max-height:94vh}.wm-semi-body{padding:12px}
}

/* V20 업무 첨부 이관·상세업무 가독성 */
.storage-migration-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;color:#667085;font-size:12px}.storage-migration-meta code{color:#243b53;overflow-wrap:anywhere}.storage-migration-runs{margin-top:14px}.helper-download{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
@media(max-width:760px){.storage-migration-meta{display:grid;gap:8px}.panel-header .inline-actions{flex-wrap:wrap}.panel-header .helper-download,.panel-header .migrate-work-attachments{width:100%;justify-content:center}}
.migration-pending-list{display:grid;gap:6px;margin-top:12px;border:1px solid #efc46d;border-radius:8px;background:#fff9e8;padding:11px}.migration-pending-list>div{display:grid;gap:4px;max-height:140px;overflow:auto}.migration-pending-list>div span{font-size:12px;color:#5f4a1b}.migration-pending-list code{font-size:11px}
.storage-drive-diagnostic{display:grid;gap:5px;margin-top:12px;border:1px solid #e6a8a8;border-radius:8px;background:#fff5f5;padding:12px;color:#7d2929;font-size:12px}.storage-drive-diagnostic strong{font-size:13px}.storage-migration-errors{display:grid;gap:8px;margin-top:12px;border:1px solid #e2e7ed;border-radius:8px;background:#fafbfd;padding:12px}.storage-migration-errors>div{display:flex;align-items:flex-start;gap:9px}.storage-migration-errors p{margin:0;color:#42556b;font-size:12px;line-height:1.45}.storage-migration-errors small{color:#687b90}.migration-error-detail{display:block;max-width:360px;margin-top:3px;color:#a33b3b;font-size:10px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}

/* V24 저장소 이관 상세로그 */
.modal.storage-log-modal{width:min(1240px,calc(100vw - 40px));height:min(860px,94vh)}.modal.storage-log-modal .modal-body{display:flex;min-height:0;flex-direction:column;gap:12px}.storage-log-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px}.storage-log-summary>div{display:grid;gap:5px;padding:10px 12px;border:1px solid #dce4ec;border-radius:8px;background:#f7f9fc}.storage-log-summary span{color:#667085;font-size:11px}.storage-log-summary strong{min-width:0;overflow-wrap:anywhere;font-size:13px}.storage-log-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.storage-log-filters{display:flex;gap:6px;flex-wrap:wrap}.storage-log-filters .secondary-button.is-active{border-color:#24527f;background:#e8f1fb;color:#153e67}.storage-log-search{width:min(360px,100%);padding:9px 11px;border:1px solid #cfd8e5;border-radius:7px}.storage-log-table-wrap{min-height:190px;max-height:310px}.storage-log-table{min-width:1000px}.storage-log-table td:nth-child(7){white-space:normal;min-width:150px}.storage-log-table td:nth-child(7) small{display:block;color:#8a3c3c;margin-top:3px}.storage-log-detail{min-height:180px;overflow:auto;border:1px solid #dce4ec;border-radius:8px;background:#fbfcfe;padding:12px}.storage-log-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.storage-log-detail-grid>div{display:grid;gap:5px;min-width:0}.storage-log-detail-grid .full{grid-column:1/-1}.storage-log-detail-grid span{font-size:11px;color:#667085}.storage-log-detail-grid strong,.storage-log-detail-grid p,.storage-log-detail-grid code{margin:0;overflow-wrap:anywhere;font-size:12px}.storage-log-detail-grid pre{max-height:150px;overflow:auto;margin:0;padding:10px;border-radius:6px;background:#172c46;color:#f3f6fa;font:11px/1.45 Consolas,monospace;white-space:pre-wrap;word-break:break-word}.storage-log-file-errors{display:grid;gap:8px;margin-top:14px}.storage-log-file-errors .data-table{min-width:900px}.storage-log-file-errors td{white-space:normal}.storage-log-file-errors .migration-error-detail{max-width:none}.storage-log-modal .modal-footer{flex:0 0 auto}
@media(max-width:900px){.modal.storage-log-modal{width:100%;height:95vh}.storage-log-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.storage-log-toolbar{align-items:stretch;flex-direction:column}.storage-log-search{width:100%}.storage-log-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.storage-log-summary,.storage-log-detail-grid{grid-template-columns:1fr}.storage-log-detail-grid .full{grid-column:auto}}

/* V30 업무계획·이력 */
.work-history-summary,.work-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-bottom:14px}.work-history-summary article,.work-plan-summary article{border:1px solid var(--border);border-radius:10px;padding:12px;background:#f8fafc}.work-history-summary span,.work-plan-summary span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.work-history-summary strong,.work-plan-summary strong{font-size:22px}.work-history-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;align-items:end;margin-bottom:14px}.work-history-filters label,.work-plan-toolbar label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.work-history-filters input,.work-plan-toolbar input{min-height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px;background:#fff}.work-history-filters .wide{grid-column:span 2}.work-history-table-wrap{max-height:calc(100vh - 420px);overflow:auto}.work-history-table{min-width:1180px}.work-history-table td.history-content{max-width:360px;white-space:pre-wrap}.work-history-table small.code,.work-plan-table small.code{display:block;color:var(--muted);margin-top:3px}.history-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.history-detail-grid>div{display:grid;gap:5px}.history-detail-grid .full{grid-column:1/-1}.history-detail-grid span{font-size:12px;color:var(--muted)}.history-detail-grid pre{margin:0;white-space:pre-wrap;font-family:inherit;border:1px solid var(--border);border-radius:8px;background:#f8fafc;padding:10px}.work-plan-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.work-plan-toolbar>label{min-width:190px}.work-plan-tabs{display:flex;gap:4px;margin-left:auto}.work-plan-tabs button{border:1px solid var(--border);background:#f1f5f9;border-radius:8px;padding:9px 14px;font-weight:700}.work-plan-tabs button.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.work-plan-table-wrap{max-height:calc(100vh - 390px);overflow:auto}.work-plan-table{min-width:1320px}.work-plan-table textarea,.work-plan-table input,.work-plan-table select{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:6px;background:#fff}.work-plan-table textarea{min-width:280px;resize:vertical}.work-plan-table .wp-hours{min-width:70px}.work-plan-complete{display:grid;grid-template-columns:1fr 1fr;gap:12px}.work-plan-complete .full{grid-column:1/-1}.work-plan-complete-list{display:grid;gap:7px;max-height:280px;overflow:auto;border:1px solid var(--border);padding:10px;border-radius:8px;margin-top:8px}.work-plan-complete-list label{display:flex;gap:8px;align-items:flex-start}.work-field-result details{margin-top:10px}.work-field-result summary{cursor:pointer;font-weight:700}.work-field-result .migration-pending-list{margin-top:8px}
@media(max-width:900px){.work-history-summary,.work-plan-summary{grid-template-columns:repeat(2,1fr)}.work-history-filters{grid-template-columns:1fr 1fr}.work-history-filters .wide{grid-column:1/-1}.work-plan-tabs{margin-left:0;width:100%;overflow:auto}.history-detail-grid,.work-plan-complete{grid-template-columns:1fr}.history-detail-grid .full,.work-plan-complete .full{grid-column:1}}
.work-plan-table .wp-status{min-width:118px}.work-plan-table .wp-status .custom-select-display{min-height:34px;padding:5px 8px;font-size:12px}.work-plan-table .wp-status .custom-select-popover{z-index:95;min-width:150px}.wp-complete-mode{display:flex!important;align-items:center;gap:8px;border:0;margin:0;padding:0}.wp-complete-mode legend{width:100%;margin-bottom:5px;font-size:12px;color:var(--muted)}.wp-complete-mode label{display:flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#f8fafc;font-weight:700}.wp-complete-mode input{margin:0}.work-plan-table tr[data-key].is-required{box-shadow:inset 4px 0 0 #dc2626}.work-plan-table tr[data-key].is-fixed{background:#f4f8fc}.work-plan-table tr[data-key].is-notice{background:#fff5d6}.work-plan-table tr[data-key].is-progress{background:#fffbe9}
.wp-complete-mode label.is-disabled{opacity:.55;cursor:not-allowed}.wp-complete-mode label.is-disabled input{cursor:not-allowed}


/* V32 자재·외주 납기 강조 및 선택 조작성 */
.status-app input[type="checkbox"]{width:24px;height:24px;min-width:24px;margin:0;cursor:pointer;vertical-align:middle}
.status-group.due.due-overdue td{background:#f4cccc!important;color:#7f1d1d}
.status-group.due.due-near td{background:#fff2cc!important;color:#765f18}
.status-group.due.due-week td{background:#d9eaf7!important;color:#2e5d83}

/* V32 업무계획·이력 좌측 조회·상태 / 우측 데이터 작업영역 */
.status-page-active .workspace>.view[data-route="work-plan"],
.status-page-active .workspace>.view[data-route="work-history"]{padding:0;height:100%;overflow:hidden}
.work-plan-shell,.work-history-shell{display:grid;grid-template-columns:238px minmax(0,1fr);height:100%;min-height:0;background:#eef3f8}
.work-plan-controls,.work-history-controls{min-height:0;overflow-y:auto;background:#143958;color:#fff;padding:12px;display:flex;flex-direction:column;gap:12px}
.work-side-heading{display:grid;gap:5px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.18)}
.work-side-heading strong{font-size:14px}.work-side-heading span{font-size:11px;line-height:1.45;color:#cfe0ee}
.work-plan-controls .work-plan-toolbar,.work-history-controls .work-history-filters{display:grid;grid-template-columns:1fr;gap:9px;margin:0;align-items:stretch}
.work-plan-controls .work-plan-toolbar>label,.work-history-controls .work-history-filters label{display:grid;gap:5px;min-width:0;color:#eaf3fa;font-size:12px}
.work-plan-controls input,.work-history-controls input{width:100%;min-height:36px;border:0;border-radius:6px;padding:0 9px;background:#fff;color:#172b3d}
.work-plan-controls .custom-select-display,.work-history-controls .custom-select-display{min-height:36px;background:#fff;color:#172b3d}
.work-plan-tabs{display:grid;grid-template-columns:1fr;gap:6px;margin:0}
.work-plan-tabs button{width:100%;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.09);color:#fff;text-align:left}
.work-plan-tabs button.is-active{background:#fff;color:#143958;border-color:#fff}
.work-plan-summary,.work-history-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0}
.work-plan-summary article,.work-history-summary article{min-width:0;border:0;border-radius:7px;padding:9px;background:rgba(255,255,255,.1)}
.work-plan-summary span,.work-history-summary span{margin-bottom:4px;color:#d6e6f2;font-size:10px}
.work-plan-summary strong,.work-history-summary strong{color:#fff;font-size:18px}
.work-history-filters .wide{grid-column:auto}
.work-history-filters .wh-search{width:100%;margin-top:2px}
.work-plan-main,.work-history-main{min-width:0;min-height:0;overflow:hidden;padding:10px;display:flex;flex-direction:column}
.work-plan-main-toolbar,.work-history-main-toolbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.work-plan-content{flex:1;min-width:0;min-height:0;overflow:hidden}
.work-plan-content>.data-table-wrap,.work-plan-table-wrap,.work-history-table-wrap{height:100%;max-height:none;min-height:0;overflow:auto}
.work-history-table-wrap{flex:1}
.work-history-main .panel-footer{flex:0 0 auto;padding:9px 2px 0}
.work-plan-table{min-width:1240px}.work-history-table{min-width:1120px}
@media(max-width:900px){
  .work-plan-shell,.work-history-shell{grid-template-columns:1fr;height:auto}
  .work-plan-controls,.work-history-controls{overflow:visible}
  .work-plan-summary,.work-history-summary{grid-template-columns:repeat(4,minmax(100px,1fr))}
  .work-plan-tabs{grid-template-columns:repeat(3,1fr)}.work-plan-tabs button{text-align:center}
  .work-plan-main,.work-history-main{min-height:65vh;overflow:visible}
  .work-plan-content>.data-table-wrap,.work-plan-table-wrap,.work-history-table-wrap{max-height:65vh;height:auto}
}
@media(max-width:600px){.work-plan-summary,.work-history-summary{grid-template-columns:1fr 1fr}.work-plan-tabs{grid-template-columns:1fr}}


/* V33 업무계획·이력 구조 및 기존 계획표 서식 복원 */
.status-page-active .workspace>.view[data-route^="work-plan:"],
.status-page-active .workspace>.view[data-route="work-history"],
.status-page-active .workspace>.view[data-route="work-history-analysis"],
.status-page-active .workspace>.view[data-route="work-salary-upload"]{padding:0;height:100%;overflow:hidden}
.work-plan-shell,.work-history-shell,.work-analysis-shell,.work-salary-shell{display:grid;grid-template-columns:238px minmax(0,1fr);height:100%;min-height:0;background:#eef3f8}
.work-plan-controls,.work-history-controls,.work-analysis-controls,.work-salary-controls{min-height:0;overflow-y:auto;background:#143958;color:#fff;padding:12px;display:flex;flex-direction:column;gap:12px}
.work-plan-main,.work-history-main,.work-analysis-main,.work-salary-main{min-width:0;min-height:0;overflow:hidden;padding:10px;display:flex;flex-direction:column;background:#eef3f8}
.wp-owner-card,.wp-date-field,.work-analysis-controls>label,.work-salary-controls>label{display:grid;gap:5px;color:#eaf3fa;font-size:12px}
.wp-owner-card{padding:10px;border-radius:7px;background:rgba(255,255,255,.1)}.wp-owner-card span{color:#d6e6f2;font-size:10px}.wp-owner-card strong{font-size:17px}
.wp-date-field input,.work-analysis-controls input,.work-salary-controls input{width:100%;min-height:36px;border:0;border-radius:6px;padding:0 9px;background:#fff;color:#172b3d}
.work-plan-main-toolbar,.work-analysis-toolbar,.work-salary-toolbar{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;min-height:40px}
.work-plan-content,.wha-content,.salary-content{flex:1;min-height:0;min-width:0;overflow:hidden}
.work-plan-table-wrap,.work-analysis-table-wrap,.salary-table-wrap{height:100%;max-height:none;overflow:auto}
.work-plan-table{table-layout:fixed;min-width:1540px;border-collapse:separate;border-spacing:0}
.work-plan-table .c-plan{width:84px}.work-plan-table .c-category{width:94px}.work-plan-table .c-company{width:128px}.work-plan-table .c-task{width:178px}.work-plan-table .c-daily{width:54px}.work-plan-table .c-deadline{width:86px}.work-plan-table .c-content{width:330px}.work-plan-table .c-hours{width:92px}.work-plan-table .c-status{width:126px}.work-plan-table .c-memo{width:250px}.work-plan-table .c-attachment{width:74px}
.work-plan-table th,.work-plan-table td{border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;vertical-align:middle}.work-plan-table th:first-child,.work-plan-table td:first-child{border-left:1px solid #cbd5e1}.work-plan-table thead th{border-top:1px solid #cbd5e1;background:#e4edf5;position:sticky;top:0;z-index:4}
.work-plan-table td.wp-merge{font-weight:700;background:#f7fafc}.work-plan-table td.wp-plan-cell{padding:4px}.wp-plan-badge{display:flex;align-items:center;justify-content:center;min-height:34px;border-radius:5px;padding:4px 5px;font-weight:800;white-space:normal}
.wp-plan-badge.plan-fixed{background:#d9e2f3;color:#203864}.wp-plan-badge.plan-urgent{background:#f4cccc;color:#8b1a1a}.wp-plan-badge.plan-morning{background:#fff2cc;color:#735c0f}.wp-plan-badge.plan-today{background:#d9ead3;color:#274e13}.wp-plan-badge.plan-tomorrow{background:#cfe2f3;color:#134f5c}.wp-plan-badge.plan-week{background:#ead1dc;color:#741b47}.wp-plan-badge.plan-next-week{background:#d9d2e9;color:#351c75}.wp-plan-badge.plan-month{background:#c9daf8;color:#073763}.wp-plan-badge.plan-next-month{background:#b6d7a8;color:#274e13}.wp-plan-badge.plan-long{background:#d0e0e3;color:#134f5c}.wp-plan-badge.plan-progress{background:#ffe599;color:#7f6000}.wp-plan-badge.plan-wait{background:#eeeeee;color:#555}.wp-plan-badge.plan-end{background:#cccccc;color:#444}
.work-plan-table tr.plan-block-start td{border-top:2px solid #4b6f8f}.work-plan-table tr.plan-block-end td{border-bottom:2px solid #4b6f8f}.work-plan-table tr.wp-notice-row td{background:#fff2cc;font-weight:700}
.work-plan-table textarea{min-width:0;min-height:48px;resize:vertical}.work-plan-table input[type="checkbox"]{width:22px;height:22px}.work-plan-table .wp-task-cell small{white-space:normal;overflow-wrap:anywhere}.wp-manual-notice{margin:0 0 8px;padding:10px;border:1px solid #efc46d;border-radius:7px;background:#fff9e8;color:#6f5114}
.wp-task-picker-list{display:grid;gap:7px;max-height:55vh;overflow:auto}.wp-task-picker-list label{display:grid;grid-template-columns:24px 1fr;gap:3px 8px;padding:9px;border:1px solid var(--border);border-radius:7px}.wp-task-picker-list input{grid-row:1/3}.wp-task-picker-list small{color:var(--muted)}
.work-analysis-controls .custom-select-display{background:#fff;color:#172b3d}.wha-summary,.salary-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.wha-summary article,.salary-summary article{min-width:0;border-radius:7px;padding:9px;background:rgba(255,255,255,.1)}.wha-summary span,.salary-summary span{display:block;color:#d6e6f2;font-size:10px;margin-bottom:4px}.wha-summary strong,.salary-summary strong{font-size:18px;color:#fff}
.work-analysis-tabs{display:flex;gap:5px}.work-analysis-tabs button{border:1px solid var(--border);border-radius:7px;background:#f8fafc;padding:9px 13px;font-weight:700}.work-analysis-tabs button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.work-analysis-table{min-width:1160px}.work-analysis-table small.code{display:block;color:var(--muted);margin-top:3px}
.salary-file-field input{padding:8px;background:#fff}.salary-help{font-size:11px;line-height:1.5;color:#cfe0ee}.salary-content{display:grid;grid-template-rows:minmax(180px,auto) minmax(0,1fr);gap:10px;overflow:auto}.salary-upload-history,.salary-normalized{min-width:0;border:1px solid var(--border);border-radius:9px;background:#fff;padding:10px}.salary-upload-history h3,.salary-normalized h3{margin:0 0 8px;font-size:14px}.salary-upload-history .data-table{min-width:980px}.salary-normalized .data-table{min-width:720px}.right{text-align:right!important}
@media(max-width:900px){.work-plan-shell,.work-history-shell,.work-analysis-shell,.work-salary-shell{grid-template-columns:1fr;height:auto}.work-plan-controls,.work-history-controls,.work-analysis-controls,.work-salary-controls{overflow:visible}.work-plan-main,.work-history-main,.work-analysis-main,.work-salary-main{min-height:65vh;overflow:visible}.work-plan-content,.wha-content,.salary-content{overflow:auto}.work-analysis-tabs{overflow:auto}.work-plan-table-wrap,.work-analysis-table-wrap,.salary-table-wrap{max-height:65vh;height:auto}}

/* V35 현황·업무계획·이력·담당자·분석 정합성 복원 */
body.status-page-active .status-app{
  border:0;
  border-radius:0;
}
body.status-page-active .workspace>.view[data-route="material-status"],
body.status-page-active .workspace>.view[data-route="outsource-status"]{
  padding:0;
}
.work-plan-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
}
.work-plan-table .c-plan{width:6.13%}
.work-plan-table .c-category{width:7.19%}
.work-plan-table .c-company{width:9.65%}
.work-plan-table .c-task{width:12.32%}
.work-plan-table .c-daily{width:4.13%}
.work-plan-table .c-deadline{width:4.40%}
.work-plan-table .c-content{width:24.39%}
.work-plan-table .c-hours{width:5.99%}
.work-plan-table .c-status{width:6.99%}
.work-plan-table .c-memo{width:15.31%}
.work-plan-table .c-attachment{width:3.50%}
.work-plan-table th,
.work-plan-table td{
  min-width:0;
  padding:3px 4px;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.work-plan-table textarea,
.work-plan-table input,
.work-plan-table select,
.work-plan-table .custom-select{
  width:100%;
  min-width:0;
}
.work-plan-table .wp-status{min-width:0}
.work-plan-table .wp-status .custom-select-display{min-width:0;padding:4px 5px;font-size:11px}
.work-plan-table .wp-status .custom-select-popover{min-width:145px}
.work-plan-table .wp-hours{min-width:0}

.work-history-controls{
  position:relative;
  overflow:visible;
}
.work-history-filter-launch{
  display:grid;
  gap:6px;
}
.work-history-filter-launch .wh-filter-toggle{width:100%}
.wh-filter-state{
  display:block;
  min-height:28px;
  padding:7px 8px;
  overflow:hidden;
  border-radius:6px;
  color:#d7e6f2;
  background:rgba(255,255,255,.09);
  font-size:10px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.work-history-controls .work-history-filters{
  position:absolute;
  left:calc(100% + 8px);
  top:8px;
  z-index:55;
  display:none;
  width:310px;
  max-height:calc(100vh - 205px);
  gap:8px;
  padding:12px;
  overflow:auto;
  border:1px solid #c6d3e0;
  border-radius:9px;
  color:#25394f;
  background:#fff;
  box-shadow:0 16px 42px rgba(17,37,62,.24);
}
.work-history-controls .work-history-filters.is-open{display:grid}
.work-history-filter-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:7px;
  border-bottom:1px solid #e1e7ee;
  font-size:15px;
}
.wh-filter-close{
  border:0;
  background:transparent;
  color:#60758b;
  font-size:22px;
  line-height:1;
}
.work-history-controls .work-history-filters label{color:#445b72;font-size:12px}
.work-history-controls .work-history-filters input,
.work-history-controls .work-history-filters .custom-select-display{border:1px solid #cfd9e5}

.owner-manager-tools{
  display:flex;
  align-items:end;
  gap:12px;
  margin-bottom:10px;
}
.owner-manager-tools>label:first-child{display:grid;flex:1;gap:5px;color:var(--muted);font-size:12px}
.owner-manager-tools input[type="text"],
.owner-manager-tools input:not([type]){min-height:38px;border:1px solid var(--border);border-radius:7px;padding:0 10px}
.owner-manager-toggle{display:flex;align-items:center;gap:7px;min-height:38px;font-weight:700}
.owner-manager-table-wrap{max-height:58vh;overflow:auto;border:1px solid var(--border);border-radius:8px}
.owner-manager-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.owner-manager-table th,
.owner-manager-table td{padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:12px;text-align:center;overflow-wrap:anywhere}
.owner-manager-table th{position:sticky;top:0;z-index:2;background:#edf3f8}
.owner-manager-table th:nth-child(1){width:12%}.owner-manager-table th:nth-child(2){width:12%}.owner-manager-table th:nth-child(3){width:9%}.owner-manager-table th:nth-child(4){width:12%}.owner-manager-table th:nth-child(5){width:25%}.owner-manager-table th:nth-child(6){width:10%}.owner-manager-table th:nth-child(7){width:10%}.owner-manager-table th:nth-child(8){width:10%}
.owner-manager-table tr[data-owner-index]{cursor:pointer}
.owner-manager-table tr[data-owner-index]:hover td{background:#f4f8fc}
.owner-manager-table tr.is-retired td{color:#7b8794;background:#f7f7f7}
.owner-manager-guide{margin:9px 0 0}
.owner-retire-note{margin:0;padding:9px;border-radius:7px;background:#f6f8fb;color:#5b6f84;font-size:12px}

.work-analysis-section{display:grid;grid-template-rows:auto minmax(180px,38%) auto minmax(220px,1fr);gap:8px;height:100%;min-height:0}
.work-analysis-section h3{margin:0;font-size:14px}
.work-analysis-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.work-analysis-sort{display:flex;gap:5px}
.work-analysis-sort button{border:1px solid var(--border);border-radius:7px;background:#fff;padding:7px 10px;font-weight:700}
.work-analysis-sort button.is-active{border-color:var(--primary);background:var(--primary);color:#fff}
.work-analysis-detail-wrap{min-height:220px}

@media(max-width:900px){
  .work-history-controls .work-history-filters{position:static;width:auto;max-height:none;margin-top:0}
  .work-analysis-section{height:auto;grid-template-rows:auto}
  .work-analysis-detail-head{align-items:flex-start;flex-direction:column}
  .work-analysis-sort{overflow:auto;max-width:100%}
}

/* V36: 업무계획 업무리스트·캘린더관리 */
.wp-task-overlay{position:fixed;inset:0;z-index:140;background:rgba(15,23,42,.42);display:grid;place-items:center;padding:24px}.wp-task-overlay[hidden]{display:none}.wp-task-dialog{width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;background:#fff;border-radius:12px;box-shadow:0 22px 60px rgba(15,23,42,.32);overflow:hidden}.wp-task-dialog-header,.wp-task-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.wp-task-dialog-footer{border-top:1px solid var(--border);border-bottom:0}.wp-task-close{border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer}.wp-task-tabs{display:flex;gap:4px;padding:10px 16px 0}.wp-task-tabs button{border:1px solid var(--border);border-radius:8px 8px 0 0;background:#eef2f6;padding:9px 14px;font-weight:800}.wp-task-tabs button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.wp-task-tools{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:8px;padding:10px 16px}.wp-task-search{min-height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.wp-task-items{min-height:0;overflow:auto;padding:0 16px 12px;display:grid;align-content:start;gap:7px}.wp-task-item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer}.wp-task-item:hover{background:#f8fafc}.wp-task-item.is-planned{background:#f1f5f9}.wp-task-item input{width:20px;height:20px;margin-top:2px}.wp-task-item>span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}.wp-task-item strong,.wp-task-item small{overflow-wrap:anywhere}.wp-task-item small{grid-column:1/-1;color:var(--muted);white-space:pre-wrap}.wp-task-item em{font-style:normal;color:var(--primary);font-size:12px;font-weight:700}.wp-task-summary{color:var(--muted);font-size:12px}.wp-content-note{display:inline-flex;margin-left:4px;padding:1px 4px;border-radius:4px;background:#fff2cc;color:#6f5114;font-size:10px;font-weight:800}

.calendar-shell{display:grid;grid-template-columns:230px minmax(0,1fr);height:100%;min-height:0;background:#eef4f8}.calendar-controls{min-height:0;overflow:auto;background:#173c5b;color:#fff;padding:12px;display:grid;align-content:start;gap:10px}.calendar-controls label{display:grid;gap:5px;font-size:12px}.calendar-controls input{width:100%;min-height:38px;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:0 9px;background:#fff;color:#172033}.calendar-controls .custom-select-display{background:#fff;color:#172033}.calendar-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;border-left:1px solid var(--border)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);background:#f8fafc}.calendar-toolbar>div:first-child{display:flex;align-items:center;gap:10px}.calendar-table-wrap{height:100%;max-height:none;overflow:auto}.calendar-table{width:100%;min-width:0;table-layout:fixed}.calendar-table th:nth-child(1),.calendar-table td:nth-child(1){width:10%}.calendar-table th:nth-child(2),.calendar-table td:nth-child(2){width:10%}.calendar-table th:nth-child(3),.calendar-table td:nth-child(3){width:8%}.calendar-table th:nth-child(4),.calendar-table td:nth-child(4){width:18%}.calendar-table th:nth-child(5),.calendar-table td:nth-child(5){width:14%}.calendar-table th:nth-child(6),.calendar-table td:nth-child(6){width:12%}.calendar-table th:nth-child(7),.calendar-table td:nth-child(7){width:20%}.calendar-table th:nth-child(8),.calendar-table td:nth-child(8){width:8%}.calendar-table th,.calendar-table td{min-width:0;white-space:normal;overflow-wrap:anywhere;vertical-align:top}.calendar-table td small{display:block;color:var(--muted);margin-top:3px}.calendar-table tbody tr{cursor:pointer}.calendar-table tbody tr:hover{background:#eef6fc}.calendar-table tr.is-cancelled{background:#fff5e8;color:#7c4a15}.calendar-table tr.is-error{box-shadow:inset 4px 0 0 #b42318}.calendar-content{white-space:pre-wrap}.calendar-side-summary{display:grid;grid-template-columns:1fr;gap:6px;margin-top:6px}.calendar-side-summary article{background:rgba(255,255,255,.1);border-radius:8px;padding:8px}.calendar-side-summary span{display:block;font-size:11px;opacity:.78}.calendar-side-summary strong{font-size:18px}.calendar-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-form-grid .full{grid-column:1/-1}.calendar-form-grid textarea{resize:vertical}.source-sync-panel .migration-result{min-height:auto;text-align:left;display:block}.source-sync-panel strong{overflow-wrap:anywhere}

@media(max-width:1000px){.calendar-shell{grid-template-columns:1fr;height:auto}.calendar-controls{overflow:visible}.calendar-main{min-height:65vh;border-left:0}.calendar-table{min-width:900px}.wp-task-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}}
.wp-task-dialog>header,.wp-task-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}.wp-task-dialog>header{border-bottom:1px solid var(--border)}.wp-task-dialog>footer{border-top:1px solid var(--border)}.wp-task-dialog>header h3,.wp-task-dialog>header p{margin:0}.wp-task-dialog>header p{margin-top:4px;color:var(--muted);font-size:12px}
.work-plan-table tr.task-block-start td{border-top:1px solid #8fa7bc}
.work-plan-table .wp-category-label{display:block;margin:0;padding:2px 3px;min-height:0;font-weight:800;text-align:center}.work-plan-table .category-관리{background:#b4a7d6;color:#2f264b}.work-plan-table .category-영업{background:#9fc5e8;color:#153d5c}.work-plan-table .category-전산{background:#6d9eeb;color:#173d70}.work-plan-table .category-설계{background:#a2c4c9;color:#27484f}.work-plan-table .category-자재{background:#b6d7a8;color:#254f20}.work-plan-table .category-생산{background:#ffd966;color:#5d4700}.work-plan-table .category-경영{background:#f6b26b;color:#6c3a0c}.work-plan-table .category-대외{background:#ea9999;color:#6d2522}.work-plan-table .category-기타{background:#dd7e6b;color:#5f2018}.work-plan-table .wp-status.status-ready .custom-select-display{background:#e9eef3;color:#374a5a}.work-plan-table .wp-status.status-progress .custom-select-display{background:#fff2cc;color:#7f6000}.work-plan-table .wp-status.status-approval .custom-select-display{background:#d9d2e9;color:#351c75}.work-plan-table .wp-status.status-done .custom-select-display{background:#d9ead3;color:#274e13}.work-plan-table .wp-status.status-cancel .custom-select-display{background:#f4cccc;color:#8b1a1a}
.calendar-table{min-width:1260px;table-layout:fixed}
.calendar-table .calendar-check{width:42px!important;text-align:center}
.calendar-table th:nth-child(2),.calendar-table td:nth-child(2){width:92px}
.calendar-table th:nth-child(3),.calendar-table td:nth-child(3){width:92px}
.calendar-table th:nth-child(4),.calendar-table td:nth-child(4){width:86px}
.calendar-table th:nth-child(5),.calendar-table td:nth-child(5){width:170px}
.calendar-table th:nth-child(6),.calendar-table td:nth-child(6){width:130px}
.calendar-table th:nth-child(7),.calendar-table td:nth-child(7){width:100px}
.calendar-table th:nth-child(8),.calendar-table td:nth-child(8){width:210px}
.calendar-table th:nth-child(9),.calendar-table td:nth-child(9){width:105px}
.calendar-table th:nth-child(10),.calendar-table td:nth-child(10){width:64px}
.calendar-table th:nth-child(11),.calendar-table td:nth-child(11){width:92px}
.calendar-table input[type="checkbox"]{width:20px;height:20px;margin:0}
.calendar-table .status-pill+.status-pill{margin-left:3px}

/* V37: 기존 Apps Script 업무계획 시인성·금일 고정 복원 */
.work-plan-shell{grid-template-columns:210px minmax(0,1fr)}
.work-plan-controls{overflow:hidden;padding:10px;gap:8px}
.work-plan-controls .work-side-heading{padding-bottom:7px}
.work-plan-controls .wp-owner-card{padding:8px;border-radius:6px}
.work-plan-controls .wp-owner-card strong{font-size:16px}
.work-plan-controls .work-plan-summary{grid-template-columns:1fr 1fr;gap:6px}
.work-plan-controls .work-plan-summary article{padding:7px;border-radius:6px}
.work-plan-controls .work-plan-summary span{margin-bottom:2px;font-size:10px}
.work-plan-controls .work-plan-summary strong{font-size:17px}
.work-plan-main{padding:6px;background:#edf1f5}
.work-plan-main-toolbar{min-height:38px;margin-bottom:5px;padding:3px;border:1px solid #c8d2dc;border-radius:8px;background:#fff;gap:5px;overflow:hidden}
.work-plan-tabs{display:flex!important;grid-template-columns:none!important;align-items:center;flex:0 1 auto;gap:4px;margin:0!important;min-width:0;overflow-x:auto}
.work-plan-tabs button{flex:0 0 auto;min-width:86px;width:auto!important;height:30px;padding:0 10px;border:0!important;border-radius:6px!important;background:transparent!important;color:#52616d!important;font-size:12px;font-weight:900;text-align:center!important;white-space:nowrap}
.work-plan-tabs button.is-active{color:#fff!important;background:#17385f!important}
.work-plan-tabs button b{margin-left:4px}
.wp-today-label{margin-left:auto;color:#17385f;font-size:12px;font-weight:900;white-space:nowrap}
.work-plan-main-toolbar>.inline-actions{flex:0 0 auto;gap:5px}
.work-plan-main-toolbar>.inline-actions button{min-height:30px;height:30px;padding:0 9px;border-radius:7px;font-size:12px;white-space:nowrap}
.work-plan-content{border:0;background:transparent}
.work-plan-table-wrap{height:100%;max-height:none;overflow:auto;border:1px solid #c8d2dc;border-radius:9px;background:#fff;scrollbar-gutter:stable}
.work-plan-table{width:100%;min-width:0!important;border-collapse:separate;border-spacing:0;table-layout:fixed}
.work-plan-table th,.work-plan-table td{min-width:0;padding:2px 4px;border-right:1px solid #e5eaef;border-bottom:1px solid #e5eaef;vertical-align:middle;font-size:13px;line-height:1.25;white-space:normal;overflow-wrap:normal;word-break:keep-all}
.work-plan-table thead th{height:30px;padding:3px 5px;border-top:0;background:#e9eef3;color:#374a5a;font-size:13px;font-weight:900;text-align:center;white-space:nowrap}
.work-plan-table tbody tr{min-height:24px}
.work-plan-table tbody tr:nth-child(even)>td{background:#fbfcfd}
.work-plan-table td.left{text-align:left}
.work-plan-table td.wp-merge{font-weight:900;background:#f7f9fb}
.work-plan-table td.wp-plan-cell{padding:2px;border-left:2px solid #70879a;border-top:2px solid #70879a;border-bottom:2px solid #70879a;text-align:center}
.work-plan-table .wp-plan-badge{display:inline-flex;align-items:center;justify-content:center;min-height:19px;padding:0 4px;border-radius:999px;background:transparent;color:inherit;font-size:13px;font-weight:900;line-height:1.15;white-space:nowrap}
.work-plan-table td.wp-plan-cell.plan-fixed{color:#fff;background:#7f3f00}
.work-plan-table td.wp-plan-cell.plan-urgent{color:#fff;background:#cc0000}
.work-plan-table td.wp-plan-cell.plan-morning{background:#f6b26b}
.work-plan-table td.wp-plan-cell.plan-today{color:#fff;background:#ff6666}
.work-plan-table td.wp-plan-cell.plan-tomorrow{background:#f9cb9c}
.work-plan-table td.wp-plan-cell.plan-week{background:#ffd966}
.work-plan-table td.wp-plan-cell.plan-next-week{background:#fff2cc}
.work-plan-table td.wp-plan-cell.plan-month{background:#93c47d}
.work-plan-table td.wp-plan-cell.plan-next-month{background:#b6d7a8}
.work-plan-table td.wp-plan-cell.plan-long{color:#fff;background:#76a5af}
.work-plan-table td.wp-plan-cell.plan-progress{color:#fff;background:#8e7cc3}
.work-plan-table td.wp-plan-cell.plan-wait{color:#fff;background:#666}
.work-plan-table td.wp-plan-cell.plan-end{color:#fff;background:#3d85c6}
.work-plan-table td.wp-category{padding:0;text-align:center}
.work-plan-table .wp-category-label{display:block;min-height:0;margin:0;padding:2px 3px;font-weight:900;text-align:center}
.work-plan-table td.category-관리{background:#b4a7d6!important;color:#2f264b}
.work-plan-table td.category-영업{background:#9fc5e8!important;color:#153d5c}
.work-plan-table td.category-전산{background:#6d9eeb!important;color:#173d70}
.work-plan-table td.category-설계{background:#a2c4c9!important;color:#27484f}
.work-plan-table td.category-자재{background:#b6d7a8!important;color:#254f20}
.work-plan-table td.category-생산{background:#ffd966!important;color:#5d4700}
.work-plan-table td.category-경영{background:#f6b26b!important;color:#6c3a0c}
.work-plan-table td.category-대외{background:#ea9999!important;color:#6d2522}
.work-plan-table td.category-기타{background:#dd7e6b!important;color:#5f2018}
.work-plan-table td.wp-task-cell{border-left:2px solid #9aabba}
.work-plan-table td.wp-task-cell strong{display:-webkit-box;font-weight:900;overflow:hidden;white-space:normal;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:19px;max-height:38px}
.work-plan-table textarea,.work-plan-table input[type="text"],.work-plan-table input[inputmode="decimal"]{width:100%;min-width:0;min-height:22px;padding:1px 4px;border:1px solid transparent;border-radius:5px;outline:none;background:transparent;color:inherit;font-size:13px;line-height:20px}
.work-plan-table textarea{field-sizing:content;overflow:hidden;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-overflow:clip}
.work-plan-table textarea:focus,.work-plan-table input[inputmode="decimal"]:focus{border-color:#7ca7d5;background:#fff;color:#17212b;box-shadow:0 0 0 2px rgba(46,107,178,.12)}
.work-plan-table .wp-content-cell{position:relative}
.work-plan-table .wp-content-cell:has(.wp-content-note) textarea{padding-right:38px}
.work-plan-table .wp-content-note{position:absolute;top:3px;right:4px;z-index:2;margin:0;min-width:32px;height:18px;padding:0 4px;border:1px solid #b8c5d1;border-radius:999px;background:#fff;color:#52616d;font-size:11px;font-weight:900;line-height:16px;text-align:center}
.work-plan-table .wp-daily-cell{padding:1px!important;text-align:center}
.work-plan-table input[type="checkbox"]{width:20px;height:20px;margin:0;accent-color:#17385f}
.work-plan-table .wp-hours{text-align:center}
.work-plan-table .wp-status{width:100%;min-width:0}
.work-plan-table .wp-status .custom-select-display{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;min-height:20px;height:20px;padding:1px 5px;border-radius:999px;font-size:12px;font-weight:900;line-height:16px;white-space:nowrap}
.work-plan-table .wp-status .custom-select-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-plan-table .wp-status .custom-select-display::after{flex:0 0 auto}
.work-plan-table .wp-status .custom-select-popover{min-width:145px}
.work-plan-table .table-button{min-height:22px;padding:2px 7px;font-size:12px;white-space:nowrap}
.work-plan-table tr.plan-block-start>td{border-top:2px solid #70879a}
.work-plan-table tr.plan-block-end>td{border-bottom:2px solid #70879a}
.work-plan-table tr.task-block-start>td{border-top:1px solid #9aabba}
.work-plan-table tr.wp-notice-row>td{background:#ffff00;font-weight:900}
.wp-manual-notice{margin:0 0 5px;padding:7px 9px;border-radius:7px}
@media(max-width:1100px){.wp-today-label{display:none}.work-plan-tabs button{min-width:78px;padding:0 7px}.work-plan-main-toolbar>.inline-actions button{padding:0 7px}}

/* V38: 업무계획 원본 시인성·업무리스트·담당자·분석 탭 보정 */
.work-plan-table{
  height:auto!important;
}
.work-plan-table tbody{
  height:auto!important;
}
.work-plan-table tbody tr{
  height:auto;
  min-height:24px;
}
.work-plan-table th,
.work-plan-table td{
  height:auto;
  padding:2px 4px;
  vertical-align:top;
}
.work-plan-table td.wp-merge,
.work-plan-table td.wp-plan-cell,
.work-plan-table td.wp-category,
.work-plan-table .wp-daily-cell,
.work-plan-table .wp-status-cell,
.work-plan-table td:last-child{
  vertical-align:middle;
}
.work-plan-table .wp-category-label{
  display:block!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:2px 3px!important;
  line-height:18px;
}
.work-plan-table .wp-plan-badge{
  min-width:52px;
  min-height:18px;
  padding:1px 5px;
}
.work-plan-table .wp-status-cell{
  padding:2px 4px!important;
}
.work-plan-table .wp-status{
  display:block!important;
  width:100%!important;
  min-width:0!important;
}
.work-plan-table .wp-status .custom-select-display{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 10px;
  align-items:center;
  justify-content:stretch;
  width:100%!important;
  min-width:0!important;
  height:20px!important;
  min-height:20px!important;
  padding:1px 6px!important;
}
.work-plan-table .wp-status .custom-select-label{
  display:block;
  min-width:0;
  overflow:hidden;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.work-plan-table .wp-status .custom-select-arrow{
  display:block;
  width:10px;
  text-align:center;
}
.work-plan-table textarea{
  field-sizing:content;
  height:auto;
  min-height:22px;
  max-height:none;
  line-height:20px;
  overflow:hidden;
}
.work-plan-table input[inputmode="decimal"]{
  height:22px;
  min-height:22px;
  line-height:20px;
}
.work-plan-table input[type="checkbox"]{
  width:22px;
  height:22px;
}

.wp-task-overlay{
  padding:18px;
}
.wp-task-dialog{
  width:min(1220px,96vw)!important;
  height:min(780px,94vh);
  max-height:94vh!important;
  border:1px solid #aebbc7;
  border-radius:12px;
}
.wp-task-dialog>header,
.wp-task-dialog>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
}
.wp-task-dialog>header h3{
  margin:0;
  font-size:18px;
}
.wp-task-dialog>header p{
  margin:4px 0 0;
  color:#61717f;
  font-size:12px;
}
.wp-task-tabs{
  gap:6px;
  padding:8px 12px 0;
  border-bottom:1px solid #c8d2dc;
  background:#f7f9fb;
}
.wp-task-tabs button{
  min-height:36px;
  padding:0 16px;
  border:1px solid #b8c5d1;
  border-bottom:0;
  border-radius:8px 8px 0 0;
  background:#e8edf2;
  color:#4d5e6b;
  font-size:12px;
  font-weight:900;
}
.wp-task-tabs button.is-active{
  border-color:#b8c5d1;
  background:#fff;
  color:#17385f;
  box-shadow:0 -2px 0 #2e6bb2 inset;
}
.wp-task-tabs button b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:20px;
  margin-left:5px;
  padding:0 6px;
  border-radius:10px;
  background:#dce6ef;
  font-size:10px;
}
.wp-task-tools{
  grid-template-columns:minmax(260px,1fr) auto auto;
  min-height:53px;
  padding:8px 12px;
  border-bottom:1px solid #c8d2dc;
  background:#f7f9fb;
}
.wp-task-items{
  display:block;
  min-height:0;
  overflow:auto;
  padding:8px 12px;
}
.wp-task-row{
  display:grid;
  grid-template-columns:58px 80px 115px 130px minmax(180px,.9fr) minmax(260px,1.4fr) 95px 95px 54px;
  align-items:stretch;
  min-width:1080px;
  margin-bottom:5px;
  overflow:hidden;
  border:1px solid #e5eaef;
  border-radius:7px;
  background:#fff;
}
.wp-task-row.wp-task-head{
  position:sticky;
  top:0;
  z-index:3;
  border-color:#b9c6d0;
  background:#e9eef3;
  font-size:11px;
  font-weight:900;
}
.wp-task-row>div{
  display:flex;
  align-items:center;
  min-width:0;
  padding:5px 7px;
  border-right:1px solid #e5eaef;
  word-break:break-word;
}
.wp-task-row>div:last-child{
  border-right:0;
}
.wp-task-row .wp-task-wrap{
  align-items:flex-start;
  text-align:left;
}
.wp-task-row.is-selected{
  border-color:#6f9fd0;
  background:#f0f6fc;
}
.wp-task-row.is-planned{
  color:#64748b;
  background:#f5f7f9;
}
.wp-task-action{
  flex-direction:column;
  justify-content:center;
  gap:2px;
  color:#52616d;
  font-size:10px;
  font-weight:900;
}
.wp-task-action input{
  width:22px;
  height:22px;
  margin:0;
  accent-color:#17385f;
}
.wp-daily-auto{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 7px;
  border:1px solid #9fc4a8;
  border-radius:12px;
  background:#edf8ef;
  color:#28733a;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.wp-task-plan{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:52px;
  min-height:20px;
  padding:1px 6px;
  border-radius:999px;
  background:#d9e2ea;
  color:#203444;
  font-weight:900;
  white-space:nowrap;
}
.wp-task-plan.plan-fixed{color:#fff;background:#7f3f00}
.wp-task-plan.plan-urgent{color:#fff;background:#cc0000}
.wp-task-plan.plan-morning{background:#f6b26b}
.wp-task-plan.plan-today{color:#fff;background:#ff6666}
.wp-task-plan.plan-tomorrow{background:#f9cb9c}
.wp-task-plan.plan-week{background:#ffd966}
.wp-task-plan.plan-next-week{background:#fff2cc}
.wp-task-plan.plan-month{background:#93c47d}
.wp-task-plan.plan-next-month{background:#b6d7a8}
.wp-task-plan.plan-long{color:#fff;background:#76a5af}
.wp-task-plan.plan-progress{color:#fff;background:#8e7cc3}
.wp-task-plan.plan-wait{color:#fff;background:#666}
.wp-task-plan.plan-end{color:#fff;background:#3d85c6}
.wp-task-category{
  justify-content:center;
  font-weight:900;
  text-align:center;
}
.wp-task-category.category-관리{background:#b4a7d6;color:#2f264b}
.wp-task-category.category-영업{background:#9fc5e8;color:#153d5c}
.wp-task-category.category-전산{background:#6d9eeb;color:#173d70}
.wp-task-category.category-설계{background:#a2c4c9;color:#27484f}
.wp-task-category.category-자재{background:#b6d7a8;color:#254f20}
.wp-task-category.category-생산{background:#ffd966;color:#5d4700}
.wp-task-category.category-경영{background:#f6b26b;color:#6c3a0c}
.wp-task-category.category-대외{background:#ea9999;color:#6d2522}
.wp-task-category.category-기타{background:#dd7e6b;color:#5f2018}

.modal.owner-manager-modal{
  width:min(1040px,96vw);
}
.owner-manager-modal .modal-body{
  padding:16px;
}
.owner-manager-modal .owner-manager-table-wrap{
  max-height:64vh;
}
.owner-manager-modal .owner-manager-table{
  min-width:960px;
  table-layout:fixed;
}
.owner-manager-modal .owner-manager-table th,
.owner-manager-modal .owner-manager-table td{
  padding:8px 7px;
  overflow:hidden;
  overflow-wrap:normal;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.owner-manager-modal .owner-manager-table th:nth-child(1){width:14%}
.owner-manager-modal .owner-manager-table th:nth-child(2){width:10%}
.owner-manager-modal .owner-manager-table th:nth-child(3){width:8%}
.owner-manager-modal .owner-manager-table th:nth-child(4){width:12%}
.owner-manager-modal .owner-manager-table th:nth-child(5){width:25%}
.owner-manager-modal .owner-manager-table th:nth-child(6){width:10%}
.owner-manager-modal .owner-manager-table th:nth-child(7){width:10%}
.owner-manager-modal .owner-manager-table th:nth-child(8){width:11%}

.work-analysis-toolbar{
  min-height:50px;
  padding:7px 10px;
  border-bottom:1px solid #cbd5e1;
  background:#f8fafc;
}
.work-analysis-tabs{
  display:inline-flex;
  gap:6px;
  padding:3px;
  border:1px solid #b8c5d1;
  border-radius:9px;
  background:#e9eef3;
}
.work-analysis-tabs button{
  min-width:140px;
  min-height:34px;
  padding:0 16px;
  border:1px solid transparent;
  border-radius:7px;
  background:#fff;
  color:#43566a;
  font-size:14px;
  font-weight:900;
  box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.work-analysis-tabs button:hover{
  border-color:#7ca7d5;
  color:#17385f;
}
.work-analysis-tabs button.is-active{
  border-color:#17385f;
  background:#17385f;
  color:#fff;
  box-shadow:0 2px 5px rgba(23,56,95,.25);
}


/* V40: 금일 계획 상태 분리·가변 행 높이·표기 체계 정규화 */
.work-plan-table{
  height:auto!important;
  align-self:start!important;
  font-size:13px;
}
.work-plan-table tbody{
  height:auto!important;
}
.work-plan-table tbody tr{
  height:auto;
  min-height:24px!important;
}
.work-plan-table tbody td{
  height:auto;
  min-height:24px;
  max-height:none;
  padding-top:2px;
  padding-bottom:2px;
  font-size:13px;
  line-height:1.3;
}
.work-plan-table td[rowspan]{
  height:auto!important;
  max-height:none;
}
.work-plan-table .wp-category-label{
  display:block!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:2px 3px!important;
  font-size:13px;
  line-height:19px!important;
}
.work-plan-table .wp-task-cell strong,
.work-plan-table .wp-merge{
  font-size:13px;
  line-height:1.3;
}
.work-plan-table textarea{
  box-sizing:border-box;
  field-sizing:content;
  height:auto;
  min-height:24px;
  max-height:none;
  padding:2px 4px;
  overflow:hidden;
  resize:none;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  font-size:13px;
  line-height:19px;
}
.work-plan-table .wp-content-cell,
.work-plan-table td:has(.wp-memo){
  vertical-align:top;
}
.work-plan-main-toolbar,
.work-plan-tabs button,
.work-plan-main-toolbar button,
.wp-today-label,
.wp-daily-total{
  font-size:12px;
}
.wp-daily-total{
  flex:0 0 auto;
  padding:4px 8px;
  border:1px solid #b8c8d8;
  border-radius:999px;
  background:#fff8dc;
  color:#654b00;
  font-weight:900;
  white-space:nowrap;
}
.work-plan-table .wp-status-cell{
  position:relative;
  padding:2px 4px!important;
  vertical-align:middle;
  text-align:center;
  background-clip:padding-box;
}
.wp-status-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:22px;
  height:auto;
  padding:2px 5px;
  border:1px solid transparent;
  border-radius:999px;
  color:#374a5a;
  background:#f1f3f4;
  font:inherit;
  font-size:13px;
  font-weight:900;
  line-height:16px;
  white-space:nowrap;
  cursor:pointer;
}
.wp-status-button:hover,
.wp-status-button[aria-expanded="true"]{
  border-color:#7ca7d5;
  box-shadow:0 0 0 2px rgba(46,107,178,.12);
}
.wp-status-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.wp-status-arrow{flex:0 0 auto;color:currentColor;font-size:11px;opacity:.72}
.wp-status-button.status-empty,.wp-status-option-chip.status-empty{color:#61717f;background:#fff;border-color:#c8d2dc}
.wp-status-button.status-ready,.wp-status-option-chip.status-ready{color:#374a5a;background:#e9eef3}
.wp-status-button.status-progress,.wp-status-option-chip.status-progress{color:#6b4e00;background:#fff2cc}
.wp-status-button.status-approval,.wp-status-option-chip.status-approval{color:#3d2d5f;background:#d9d2e9}
.wp-status-button.status-done,.wp-status-option-chip.status-done{color:#174c75;background:#cfe2f3}
.wp-status-button.status-cancel,.wp-status-option-chip.status-cancel{color:#7a1f1f;background:#f4cccc}
.wp-status-menu{
  position:fixed;
  z-index:240;
  display:grid;
  gap:4px;
  min-width:132px;
  padding:6px;
  border:1px solid #b8c5d1;
  border-radius:9px;
  background:#fff;
  box-shadow:0 12px 32px rgba(14,26,38,.22);
}
.wp-status-menu[hidden]{display:none!important}
.wp-status-search-wrap{position:sticky;top:0;z-index:2;background:#fff}
.wp-status-search{width:100%;height:27px;padding:0 7px;border:1px solid #9fb8d0;border-radius:7px;outline:none;background:#fff;color:#17212b;font:inherit;font-size:11px}
.wp-status-search:focus{border-color:#2e6bb2;box-shadow:0 0 0 2px rgba(46,107,178,.14)}
.wp-status-options{display:grid;gap:4px;max-height:230px;overflow:auto}
.wp-status-option{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:24px;padding:2px 6px;border:1px solid transparent;border-radius:7px;background:#fff;color:#17212b;font-size:11px;font-weight:900;text-align:left;white-space:nowrap}
.wp-status-option:hover,.wp-status-option.active,.wp-status-option.keyboard-active{border-color:#9fb8d0;background:#f3f7fb}
.wp-status-option-chip{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:19px;padding:1px 6px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:900}
.wp-status-empty{min-height:30px;padding:7px;border-radius:7px;color:#61717f;background:#f5f7f9;text-align:center;font-size:11px;font-weight:900}
.wp-status-empty[hidden]{display:none!important}
/* V44: Apps Script와 동일한 교차서식·일보·필수·완료·현황 우선순위 */
.work-plan-table tr.row-daily.row-required>td.wp-work-zone{background:#d9d2e9!important}
.work-plan-table tr.row-daily:not(.row-required)>td.wp-work-zone{background:#fff2cc!important}
.work-plan-table tr.row-required:not(.row-daily)>td.wp-work-zone{background:#e6b8af!important}
.work-plan-table tr.row-complete>td.wp-work-zone{color:#17212b!important;background:#cfe2f3!important}
.work-plan-table tr.row-wait>td.wp-work-zone{color:#fff!important;background:#666!important}
.work-plan-table tr.row-wait textarea,
.work-plan-table tr.row-wait input{color:#fff;background:#555;border-color:#888}
/* 현황 셀은 행 색상보다 현황 고유색을 우선한다. */
.work-plan-table td.wp-status-cell.status-empty{background:#fff!important}
.work-plan-table td.wp-status-cell.status-ready{background:#e9eef3!important}
.work-plan-table td.wp-status-cell.status-progress{background:#fff2cc!important}
.work-plan-table td.wp-status-cell.status-approval{background:#d9d2e9!important}
.work-plan-table td.wp-status-cell.status-done{background:#cfe2f3!important}
.work-plan-table td.wp-status-cell.status-cancel{background:#f4cccc!important}
.work-plan-table .wp-status-cell{height:auto!important;min-height:0!important;padding:2px 3px!important;vertical-align:middle!important;background-clip:padding-box}
.wp-status-option>span:last-child:not(.wp-status-option-chip){font-size:10px;white-space:nowrap}
.work-analysis-sort-wrap{display:flex;align-items:center;gap:7px;min-width:0}
.work-analysis-sort-label{color:#53657b;font-size:11px;font-weight:900;white-space:nowrap}
.work-analysis-sort{display:inline-flex;gap:0;padding:3px;border:1px solid #b9c7d5;border-radius:9px;background:#e9eef3;box-shadow:inset 0 1px 2px rgba(23,56,95,.06)}
.work-analysis-sort button{min-height:31px;padding:0 13px;border:1px solid transparent!important;border-radius:6px!important;background:transparent!important;color:#52616d!important;font-size:12px;font-weight:900;white-space:nowrap}
.work-analysis-sort button:hover{background:#f7f9fb!important;color:#17385f!important}
.work-analysis-sort button.is-active{border-color:#17385f!important;background:#17385f!important;color:#fff!important;box-shadow:0 2px 5px rgba(23,56,95,.25)}
.work-analysis-sort button:focus-visible{outline:2px solid #2e6bb2;outline-offset:2px}
@media(max-width:900px){.work-analysis-sort-wrap{max-width:100%;overflow:auto}.work-analysis-sort{flex:0 0 auto}}


/* V42: 도면관리시스템 V85 배포 대기·완료·실패 3카드 구조와 동일화 */
.deploy-list-grid.deploy-lists{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(300px,.82fr);gap:12px;align-items:stretch}
.deploy-lists>.deploy-list-panel{display:flex;min-width:0;min-height:360px;flex-direction:column;padding:0;overflow:hidden}
.deploy-lists>.deploy-list-panel>.panel-header{min-height:42px;margin:0;padding:9px 12px;border-bottom:1px solid #d7e0e8}
.deploy-lists>.deploy-list-panel>.data-table-wrap{flex:1;min-width:0;min-height:0;max-height:320px;margin:0;border:0;border-radius:0;overflow-x:hidden;overflow-y:auto}
.deploy-lists .deploy-release-table{width:100%;min-width:0;table-layout:fixed}
.deploy-lists .deploy-release-table th,.deploy-lists .deploy-release-table td{min-width:0;padding:8px 7px;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deploy-lists .deploy-col-file{width:54%}
.deploy-lists .deploy-col-size{width:16%}
.deploy-lists .deploy-col-time{width:30%}
.deploy-lists .empty-row{height:88px;color:#718296;text-align:center}
@media(max-width:1100px){.deploy-list-grid.deploy-lists{grid-template-columns:1fr}.deploy-lists>.deploy-list-panel{min-height:240px}}

/* V45: 기존 Apps Script 계획표 셀·색상·현황·가변행 최종 기준 */
.work-plan-table .c-deadline{width:4.40%}
.work-plan-table .c-content{width:24.39%}
.work-plan-table .c-attachment{width:3.50%}
.work-plan-table tbody td{
  box-sizing:border-box;
  height:auto!important;
  padding:2px 4px;
  border-right:1px solid #e5eaef;
  border-bottom:1px solid #e5eaef;
  line-height:1.2;
  vertical-align:top;
}
.work-plan-table tbody tr:nth-child(even)>td{background:#fbfcfd}
/* Apps Script의 work-zone 범위: 일보 열부터 첨부 열까지만 상태색을 적용한다. */
.work-plan-table tr.row-daily.row-required>td.wp-work-zone{background:#d9d2e9!important}
.work-plan-table tr.row-daily:not(.row-required)>td.wp-work-zone{background:#fff2cc!important}
.work-plan-table tr.row-required:not(.row-daily)>td.wp-work-zone{background:#e6b8af!important}
.work-plan-table tr.row-complete>td.wp-work-zone{color:#17212b!important;background:#cfe2f3!important}
.work-plan-table tr.row-wait>td.wp-work-zone{color:#fff!important;background:#666!important}
.work-plan-table tr.row-wait textarea,
.work-plan-table tr.row-wait input{color:#fff;background:#555;border-color:#888}
.work-plan-table textarea.wp-content,
.work-plan-table textarea.wp-memo{
  box-sizing:border-box;
  display:block;
  width:100%;
  height:19px;
  min-height:19px;
  max-height:none;
  margin:0;
  padding:1px 4px;
  overflow:hidden;
  resize:none;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  color:inherit;
  font-size:13px;
  line-height:1.2;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
}
/* 현황 셀은 행 높이를 따르되 버튼 자체는 Apps Script와 같은 19px 한 줄 높이를 유지한다. */
.work-plan-table tbody td.wp-status-cell{
  position:static!important;
  box-sizing:border-box!important;
  height:auto!important;
  min-height:24px!important;
  padding:2px 4px!important;
  border-bottom:1px solid #e5eaef!important;
  vertical-align:top!important;
  text-align:center!important;
  background-clip:border-box!important;
}
.work-plan-table tbody tr.plan-block-end>td.wp-status-cell{
  border-bottom:2px solid #70879a!important;
}
.work-plan-table tbody td.wp-status-cell>.wp-status-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:19px!important;
  min-height:19px!important;
  max-height:19px!important;
  margin:0!important;
  padding:1px 6px!important;
  border:1px solid transparent!important;
  border-radius:999px!important;
  color:#374a5a;
  background:#f1f3f4;
  font:inherit!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:15px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.work-plan-table .wp-status-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-plan-table .wp-status-arrow{flex:0 0 auto;font-size:10px;line-height:1;opacity:.72}
/* 현황 자체 색은 일보·필수·완료 행색보다 최종 우선한다. */
.work-plan-table td.wp-status-cell.status-empty{background:#fff!important}
.work-plan-table td.wp-status-cell.status-ready{background:#e9eef3!important}
.work-plan-table td.wp-status-cell.status-progress{background:#fff2cc!important}
.work-plan-table td.wp-status-cell.status-approval{background:#d9d2e9!important}
.work-plan-table td.wp-status-cell.status-done{background:#cfe2f3!important}
.work-plan-table td.wp-status-cell.status-cancel{background:#f4cccc!important}


/* 신청관리 */
.request-panel{display:grid;gap:12px;min-height:0}.request-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.request-head h3{margin:0;font-size:18px}.request-actions{display:flex;gap:8px;flex-wrap:wrap}.request-guide{padding:10px 12px;border-radius:9px;background:#eef4fa;color:#40546a;font-size:13px}.request-filter-row{display:flex;gap:8px;align-items:center}.request-filter-row>input{min-width:220px;flex:1;border:1px solid var(--border-color,#d7e0e8);border-radius:8px;padding:9px 10px}.request-table{min-width:820px}.request-table th,.request-table td{vertical-align:middle}.request-table td small,.request-table td span{display:block;color:#6a7988;margin-top:3px}.request-table td strong{display:block}.request-click-row{cursor:pointer}.request-click-row:hover{background:#f4f8fb}.request-link-cell{max-width:380px;word-break:break-all}.request-history-grid{display:grid;gap:12px}.request-summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.request-summary-cards article{border:1px solid #dce4eb;border-radius:10px;background:#fff;padding:12px}.request-summary-cards span{display:block;color:#687888;font-size:12px}.request-summary-cards strong{display:block;margin-top:4px;font-size:20px}.request-upload-box{display:grid;gap:12px;max-width:680px}.request-upload-box input{border:1px dashed #aab9c6;border-radius:9px;padding:12px}.request-upload-box p{margin:0;color:#607184}.request-error{color:#b52d2d!important}.request-attachment-link{display:inline-block;margin:0 6px 4px 0;text-decoration:none}.request-process-table textarea{min-width:180px;min-height:56px;resize:vertical}.request-process-table .rq-assignee{min-width:100px}.request-catalog-summary{color:#586a7c}.request-form-modal .modal-card{max-width:760px}.request-form-modal .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.request-form-modal .form-field{display:grid;gap:6px}.request-form-modal .form-field.full{grid-column:1/-1}.request-form-modal input,.request-form-modal textarea{box-sizing:border-box;width:100%}.request-upload-box .rq-result{min-height:22px;font-weight:700}.request-table .custom-select{min-width:125px}
@media(max-width:760px){.request-head{align-items:flex-start;flex-direction:column}.request-actions{width:100%}.request-actions button{flex:1}.request-filter-row{align-items:stretch;flex-direction:column}.request-filter-row>input{min-width:0}.request-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.request-form-modal .form-grid{grid-template-columns:1fr}.request-form-modal .form-field.full{grid-column:auto}.request-panel .data-table-wrap{overflow:auto}.request-table{min-width:760px}}
.request-cart-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.request-cart-actions span{color:#667789;font-size:12px}.request-inline-cart{display:grid;gap:8px;max-height:280px;overflow:auto}.request-inline-cart-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;align-items:center;gap:10px;border:1px solid #dce4eb;border-radius:9px;padding:9px;background:#f9fbfc}.request-inline-cart-row span{min-width:0}.request-inline-cart-row strong,.request-inline-cart-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-inline-cart-row small{margin-top:3px;color:#657688}.request-inline-cart-row label{display:flex;align-items:center;gap:5px}.request-inline-cart-row label input{min-width:0}.request-inline-cart-row em{font-style:normal;color:#657688;font-size:12px}.request-inline-cart-empty{padding:18px;text-align:center;border:1px dashed #c6d1dc;border-radius:9px;color:#6d7e8f}
@media(max-width:760px){.request-cart-actions{align-items:stretch;flex-direction:column}.request-inline-cart-row{grid-template-columns:minmax(0,1fr) 110px auto}}

.button-content,.button-busy-label{display:inline-flex;align-items:center;justify-content:center;gap:4px}.button-content[hidden],.button-busy-label[hidden]{display:none!important}
/* V52 업무관리 열 배치 */
.work-manage-table-project .wm-col-content,
.work-manage-table-general .wm-col-content,
.work-manage-table-internal .wm-col-content{width:28%;max-width:420px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.work-manage-table-project .wm-col-memo,
.work-manage-table-general .wm-col-memo,
.work-manage-table-internal .wm-col-memo{width:18%;max-width:280px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.work-manage-table .wm-col-origin{width:76px}
.notice-origin{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 7px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.notice-origin.auto{background:#e4eef8;color:#24577c;border:1px solid #9cbad2}.notice-origin.manual{background:#f0f0f0;color:#4b5560;border:1px solid #c6ccd1}
.fixed-list-table .fixed-owner-cell.is-edited{background:#fff0b8!important;box-shadow:inset 0 0 0 2px #d49b00}
.fixed-owner-editor{position:fixed;z-index:190;box-sizing:border-box;background:#fff;border-radius:6px;box-shadow:0 0 0 2px #2f6fa6,0 4px 14px rgba(15,23,42,.16);overflow:visible}.fixed-owner-editor.custom-select{width:auto;min-width:0}.fixed-owner-editor .custom-select-display{box-sizing:border-box;width:100%;min-width:0;min-height:30px;padding:5px 6px;overflow:hidden}.fixed-owner-editor .custom-select-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-owner-editor .custom-select-popover{z-index:210;min-width:0}
.request-integration-section{margin-top:18px}.request-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.request-subhead h4{margin:0}.request-integration-table input[type="text"],.request-integration-table input[type="password"],.request-integration-table input:not([type]){min-width:130px;width:100%}.request-integration-table tr.is-deleted{opacity:.52;text-decoration:line-through}.rq-integration-result{min-height:24px;margin-top:12px;font-weight:800}
.pm-migration-status{min-height:22px;margin:8px 0 0;padding:8px 10px;border-radius:7px;background:#eef5fb;color:#315674;font-weight:800}

/* V53: 업무계획 통합검색·외부변경 알림·고정업무 현황 비활성 */
.wp-main-search-field{display:grid;gap:5px;color:#eaf3fa;font-size:11px;font-weight:800}
.wp-main-search-field>span{display:block}
.wp-main-search-field .wp-main-search{width:100%;min-height:34px;border:0;border-radius:6px;padding:0 9px;background:#fff;color:#172b3d}
.wp-external-pending{flex:0 0 auto;padding:5px 8px;border:1px solid #e4c46a;border-radius:999px;background:#fff4c9;color:#775400;font-size:11px;font-weight:900;white-space:nowrap}
.wp-status-button.is-disabled,.wp-status-button:disabled{border-color:#d6dde4!important;background:#edf1f4!important;color:#7b8995!important;box-shadow:none!important;cursor:not-allowed!important;opacity:.9}
.work-plan-table tr.row-fixed .wp-status-cell{background:#f5f7f9!important}

/* V57 신청 이력/현황 · 비번휴가 */
.request-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;align-items:end}.request-filter-grid .form-field{display:grid;gap:5px;min-width:0}.request-filter-grid input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:8px 9px}.request-filter-action button{width:100%;min-height:38px}.request-summary-line{color:#607184;font-size:12px;font-weight:700}.request-type-tabs{display:flex;gap:6px;flex-wrap:wrap}.request-type-tabs button{min-width:92px}.request-type-tabs button.active{border-color:#2d6fb2;background:#e8f1fb;color:#174e84}.duty-period{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.duty-period label{display:grid;gap:4px;color:#546474;font-size:12px;font-weight:700}.duty-period input{width:120px;min-height:36px;border:1px solid #d4dde5;border-radius:8px;padding:7px 8px}.duty-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.duty-group-card{border:1px solid #dce4eb;border-radius:10px;background:#fff;padding:12px;min-height:100px}.duty-group-card h4{margin:0 0 8px;font-size:15px}.duty-group-card h4 span{color:#687888;font-size:12px}.duty-group-card>div{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(100px,1fr);gap:8px;padding:5px 2px;border-top:1px solid #eef2f5}.duty-group-card>div span{color:#687888}.duty-roster-table td{text-align:center}.duty-roster-table .duty-on{font-weight:800}.duty-roster-table .duty-off{color:#708090}.duty-roster-table .duty-holiday{background:#f4f5f7;font-weight:700}.request-wide-modal .modal-card{max-width:1100px}
@media(max-width:900px){.request-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.duty-group-grid{grid-template-columns:1fr}}
@media(max-width:560px){.request-filter-grid{grid-template-columns:1fr}}

/* V62: 모든 공통 커스텀 드롭다운은 모달/테이블 overflow 밖 document.body 포털에서 표시 */
.custom-select-popover.custom-select-popover-portal{
  position:fixed;
  right:auto;
  z-index:10000;
  box-sizing:border-box;
  margin:0;
}

/* V62: 팝업은 PC에서 가능한 한 내부 스크롤 없이 보이도록 폭을 넓히고 여백을 압축한다. */
.modal-backdrop{padding:10px}
.modal{max-height:calc(100dvh - 20px)}
.modal>header,.modal>footer{padding:12px 16px}
.modal-body{padding:14px 16px}
.form-grid{gap:10px 12px}
.form-field{gap:5px}
.modal.request-form-modal{width:min(820px,calc(100vw - 24px))}
.modal.request-form-modal .modal-body{overflow:auto}
.modal.request-form-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.modal.request-form-modal.employee-modal{width:min(980px,calc(100vw - 24px))}
.modal.request-form-modal.employee-modal .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
.modal.request-form-modal.employee-modal .form-field{min-width:0}
.check-field.check-card{box-sizing:border-box;display:flex;min-height:39px;align-items:center;gap:9px;margin:0;padding:8px 10px;border:1px solid #d6dfe8;border-radius:8px;background:#f8fafc;color:#31475c;font-weight:800;cursor:pointer}
.check-field.check-card:hover{border-color:#9eb5ca;background:#f1f6fa}
.check-field.check-card input{flex:0 0 auto;width:18px!important;height:18px;margin:0;accent-color:#24527f}
.check-field.check-card span{min-width:0;line-height:1.25}
.custom-select-popover.custom-select-popover-portal{z-index:10000!important}
.custom-select-popover.custom-select-popover-portal .custom-select-options{overscroll-behavior:contain}
/* 공지사항은 건수와 무관하게 각 행 전체를 동일한 노란색으로 표시한다. */
.work-plan-table tbody tr.wp-notice-row>td{background:#ffff00!important;color:#17212b!important;font-weight:900!important}
/* 완료 현황은 일보/필수 행색보다 최종 우선한다. */
.work-plan-table tbody tr.row-complete>td.wp-work-zone{background:#cfe2f3!important;color:#17212b!important}
@media(max-width:760px){
  .modal-backdrop{padding:0}
  .modal{width:100%!important;max-height:96dvh;border-radius:12px 12px 0 0;align-self:end}
  .modal.request-form-modal .form-grid,.modal.request-form-modal.employee-modal .form-grid{grid-template-columns:1fr}
}
/* V62: 넓은 편집/검사 팝업은 화면 폭을 활용해 불필요한 내부 스크롤을 줄인다. */
.modal.request-wide-modal{width:min(1100px,calc(100vw - 24px))}
.modal.compact-modal{width:min(720px,calc(100vw - 24px))}
.modal .checkbox-field{box-sizing:border-box;display:flex;min-height:39px;align-items:center;gap:9px;margin:0;padding:8px 10px;border:1px solid #d6dfe8;border-radius:8px;background:#f8fafc;color:#31475c;font-size:13px;font-weight:800;cursor:pointer}
.modal .checkbox-field:hover{border-color:#9eb5ca;background:#f1f6fa}
.modal .checkbox-field input[type="checkbox"]{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#24527f}
@media(min-width:1000px) and (min-height:720px){
  .modal.request-form-modal .modal-body{overflow:auto}
  .modal.request-form-modal.employee-modal .modal-body{overflow:visible}
}

/* V62: 기본 팝업도 PC 화면 폭을 더 활용하고 사용자 수정은 3열로 압축한다. */
.modal{width:min(760px,calc(100vw - 24px))}
.modal.admin-user-modal{width:min(920px,calc(100vw - 24px))}
.modal.admin-user-modal .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 12px}
@media(max-width:760px){.modal.admin-user-modal .form-grid{grid-template-columns:1fr}}

/* V64: 별도 여름휴가는 사원별 서로 다른 기간을 한 화면에서 일괄 등록 */
.modal.vacation-bulk-modal{width:min(980px,calc(100vw - 24px))}
.duty-vacation-bulk-head,.duty-vacation-bulk-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.8fr) minmax(150px,.8fr) 42px;gap:10px;align-items:center}
.duty-vacation-bulk-head{padding:0 2px 5px;color:#4a5f72;font-size:12px;font-weight:900}
.duty-vacation-bulk{display:grid;gap:8px;max-height:min(48vh,430px);overflow:auto;padding:2px 4px 2px 2px}
.duty-vacation-bulk-row{padding:8px;border:1px solid #dce4eb;border-radius:9px;background:#f9fbfc}
.duty-vacation-bulk-row>input{width:100%;min-height:39px;border:1px solid #d4dde5;border-radius:8px;padding:7px 9px;background:#fff}
.duty-vacation-bulk-row .icon-button{width:38px;height:38px;padding:0;font-size:21px}
.duty-vacation-add-wrap{justify-content:flex-start;margin-top:10px}
@media(max-width:760px){.duty-vacation-bulk-head{display:none}.duty-vacation-bulk-row{grid-template-columns:1fr 1fr 42px}.duty-vacation-bulk-row .duty-vacation-employee{grid-column:1/-1}.modal.vacation-bulk-modal{width:100%}}

/* V66: 신청관리 기준정보 팝업 및 구매담당자 소모품 신청을 기존 신청 웹앱의 실무형 레이아웃으로 통일 */
.modal.request-form-modal .modal-body{background:#fbfcfe}
.modal.request-form-modal .form-field>span:first-child{color:#20384f;font-size:12px;font-weight:900}
.modal.request-form-modal input:not([type="checkbox"]),.modal.request-form-modal textarea{min-height:39px;border:1px solid #cbd6e2;border-radius:7px;padding:8px 10px;background:#fff;color:#182b3e}
.modal.request-form-modal input:focus,.modal.request-form-modal textarea:focus{outline:2px solid rgba(36,82,127,.16);border-color:#5e87ae}
.request-profile-name{grid-column:1/-1;display:flex;align-items:baseline;gap:7px;padding:9px 11px;border:1px solid #d7e1ea;border-radius:8px;background:#eef4f9}.request-profile-name strong{font-size:15px}.request-profile-name span{color:#647587;font-size:12px}
.request-spec-list{display:grid;gap:6px;max-height:min(46vh,430px);overflow:auto;padding:1px}
.request-spec-header,.request-spec-row{display:grid;grid-template-columns:minmax(130px,1.15fr) minmax(140px,1.15fr) minmax(110px,.85fr) 72px 100px 70px 58px;gap:6px;align-items:center}
.request-spec-header{padding:0 6px;color:#506377;font-size:11px;font-weight:900}
.request-spec-row{padding:7px;border:1px solid #d8e1e9;border-radius:8px;background:#fff}
.request-spec-row input{min-width:0!important;width:100%;height:34px!important;min-height:34px!important;padding:5px 7px!important}
.request-spec-row label{display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:800}.request-spec-row label input{width:16px!important;height:16px!important;min-height:0!important}
.request-spec-row .danger-outline{height:32px;min-height:32px;padding:0 7px}

.request-purchase-shell{display:grid;grid-template-columns:260px minmax(440px,1fr) 360px;gap:10px;height:calc(100vh - 205px);min-height:520px;overflow:hidden}
.request-purchase-panel{display:flex;min-width:0;min-height:0;flex-direction:column;padding:11px;border:1px solid #cfd9e1;border-radius:8px;background:#fff;box-shadow:0 2px 10px rgba(31,54,72,.05)}
.request-purchase-panel h3{margin:0 0 9px;color:#18334f;font-size:17px}.request-purchase-help{margin-top:8px;color:#627486;font-size:12px;line-height:1.5}
.request-purchase-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.request-purchase-category{min-height:38px;padding:5px 6px;border:1px solid #bdc9d2;border-radius:6px;background:#fff;color:#17385f;font-size:12px;font-weight:900}
.request-purchase-category:hover,.request-purchase-category.active{border-color:#2768aa;background:#eaf3fb;color:#174f88}.request-purchase-category.unregistered{border-style:dashed;border-color:#7394ae;background:#f2f7fb}
.request-purchase-status{padding:7px 2px 2px;color:#617486;font-size:11px;font-weight:800}
.request-purchase-searches{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:5px}.request-purchase-searches label{display:grid;gap:4px;padding:6px;border:1px solid #d9e1e8;border-radius:6px;background:#f9fbfc;color:#4c6073;font-size:11px;font-weight:900}.request-purchase-searches label>div{display:grid;grid-template-columns:minmax(0,1fr) 66px;gap:5px}.request-purchase-searches input{min-width:0;height:34px;border:1px solid #cbd6e0;border-radius:6px;padding:5px 7px}.request-purchase-searches button{min-width:0;padding:0 6px}
.request-purchase-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:0;margin-top:8px;overflow-y:auto;align-content:start}.request-purchase-item{min-width:0;padding:9px;border:1px solid #cfd8e0;border-radius:7px;background:#fff;text-align:left}.request-purchase-item:hover{border-color:#6f94b8;background:#f6faff}.request-purchase-item strong{display:block;color:#18334f;font-size:14px;overflow-wrap:anywhere}.request-purchase-item span{display:block;margin-top:3px;color:#657586;font-size:11px;overflow-wrap:anywhere}.request-purchase-more{margin-top:6px;min-height:36px}
.request-purchase-cart-list{display:grid;gap:7px;min-height:0;overflow:auto;align-content:start}.request-purchase-cart-item{position:relative;padding:9px 36px 9px 9px;border:1px solid #c8d3dc;border-radius:7px;background:#fbfcfd}.request-purchase-cart-item strong{display:block;color:#17324d;font-size:13px;overflow-wrap:anywhere}.request-purchase-cart-item span,.request-purchase-cart-item small{display:block;margin-top:3px;color:#5f7182;font-size:11px;overflow-wrap:anywhere}.request-purchase-remove{position:absolute;right:7px;top:7px;width:27px;height:27px;border:0;border-radius:50%;background:#e8edf2;color:#384b5d;font-size:17px;font-weight:900}.request-purchase-submit{display:grid;grid-template-columns:66px minmax(0,1fr);gap:7px;margin-top:auto;padding-top:8px;border-top:1px solid #d8e0e7}.request-purchase-count{display:grid;place-items:center;border-radius:6px;background:#edf2f6;color:#17324d;font-size:13px;font-weight:900}.request-purchase-submit .primary-button{min-height:44px;font-size:15px}.request-purchase-empty{padding:22px 8px;color:#718294;text-align:center}.request-qty-control{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}.request-qty-control button{min-width:0;padding:0;font-size:18px}.request-purchase-modal-meta{margin-bottom:9px;padding:8px 10px;border-radius:7px;background:#eef4f9;color:#4c6174;font-size:12px;font-weight:800}

/* V66: 모바일에서는 데스크톱 전체 화면을 축소하지 않고 각 작업영역이 뷰포트 폭을 직접 사용한다. */
@media(max-width:760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body:not(.login-page) .app-shell{display:block!important;width:100%!important;min-width:0!important;height:auto!important;min-height:100dvh!important;overflow:visible!important}
  body:not(.login-page) .sidebar{position:static!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;padding:8px 9px!important;overflow:visible!important}
  .sidebar-brand{display:flex;align-items:baseline;gap:8px;margin:0 4px 6px!important}.sidebar-brand strong{font-size:17px!important}.sidebar-brand small{margin:0!important;font-size:10px!important}.sidebar-user{margin:0 2px 7px!important;padding:7px 9px!important}.sidebar-bottom{display:flex;gap:5px;margin:7px 0 0!important;padding:6px 0 0!important;overflow-x:auto}.sidebar-bottom>*{flex:0 0 auto}
  .main-nav{display:flex!important;gap:5px!important;width:100%;padding:5px 0!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin}.nav-section{display:contents!important}.nav-section-title{display:none!important}.nav-button,.nav-button.child{flex:0 0 auto!important;width:auto!important;min-height:34px!important;margin:0!important;padding:7px 10px!important;white-space:nowrap!important;font-size:12px!important}
  .main-area{width:100%!important;min-width:0!important;overflow:visible!important}.topbar{position:static!important;width:100%!important;height:auto!important;min-height:0!important;padding:9px 10px!important;gap:7px!important}.topbar h2{font-size:19px!important}.breadcrumb{font-size:10px!important}.global-actions{display:flex!important;width:100%!important;max-width:100%;gap:5px!important;overflow-x:auto!important}.global-actions button{flex:0 0 auto!important;min-height:34px!important;padding:0 9px!important;font-size:11px!important}
  .workspace{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:0!important;padding:8px!important;overflow:visible!important}.view,.view.is-active{width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.panel{min-width:0!important;max-width:100%!important;padding:10px!important}.data-table-wrap{width:100%!important;max-width:100%!important;overflow:auto!important;-webkit-overflow-scrolling:touch}.data-table{width:max-content;min-width:720px;max-width:none}.request-panel{width:100%;min-width:0}.request-actions{overflow-x:auto;flex-wrap:nowrap}.request-actions button{flex:0 0 auto!important}
  .request-purchase-shell{display:block;height:auto;min-height:0;overflow:visible}.request-purchase-panel{margin-bottom:8px;overflow:visible}.request-purchase-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.request-purchase-searches{grid-template-columns:1fr}.request-purchase-items{grid-template-columns:1fr;max-height:52vh;overflow:auto}.request-purchase-cart-list{max-height:45vh}.request-purchase-submit{position:sticky;bottom:0;background:#fff;padding-bottom:3px}
  .request-spec-header{display:none}.request-spec-row{grid-template-columns:1fr 1fr}.request-spec-row [data-f="spec"],.request-spec-row [data-f="supplier"]{grid-column:auto}.request-spec-row [data-f="code"]{grid-column:1/-1}
  body.work-manage-page-active .app-shell,body.status-page-active .app-shell{height:auto!important;overflow:visible!important}
}
/* V66: 신청 기준정보 수정창은 섹션 단위로 구분해 기본 HTML 폼처럼 보이지 않게 한다. */
.modal.request-master-modal{width:min(860px,calc(100vw - 24px))}
.request-master-section{padding:12px;border:1px solid #d9e3ec;border-radius:10px;background:#fff}
.request-master-section+.request-master-section{margin-top:10px}
.request-master-section-title{margin:0 0 10px;padding-bottom:7px;border-bottom:1px solid #e4eaf0;color:#17385f;font-size:13px;font-weight:900}
@media(max-width:760px){.modal.request-master-modal{width:100%}.request-master-section{padding:9px}}
.request-master-modal .form-grid{gap:10px 12px}.request-master-modal .form-field{gap:5px}.request-master-modal .form-field>span{color:#35495d;font-size:11px;font-weight:900}.request-master-modal input:not([type="checkbox"]),.request-master-modal textarea{min-height:38px;border:1px solid #cbd7e2;border-radius:7px;padding:7px 9px;background:#fff}.request-master-modal .custom-select-display{min-height:38px;padding:8px 10px}.request-master-help{margin-top:7px;color:#64778a;font-size:11px;line-height:1.5}.request-master-modal .request-profile-name{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;padding:8px 10px;border-radius:7px;background:#eef4f9}.request-master-modal .request-profile-name strong{font-size:15px}.request-master-modal .request-profile-name span{color:#607286;font-size:11px}

/* V67 work-plan attachment/completion polish */
.work-plan-table td.wp-attachment-cell{padding-left:2px;padding-right:2px;text-align:center}.work-plan-table .wp-attachment{box-sizing:border-box;width:100%;min-width:0;max-width:100%;white-space:nowrap;padding-left:2px;padding-right:2px}
.work-plan-table .wp-attachment.has-attachment{background:#15803d;border-color:#15803d;color:#fff}
.work-plan-complete{display:grid;grid-template-columns:1fr;gap:14px}
.wp-complete-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.wp-complete-summary>div,.wp-complete-summary>label{display:grid;gap:4px}.wp-complete-summary span{font-size:12px;color:var(--muted)}.wp-complete-summary strong{font-size:20px}.wp-complete-summary input{min-height:38px;border:1px solid var(--border);border-radius:8px;padding:0 9px;background:#fff}
.wp-complete-section-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px}.wp-complete-section-head>div{display:flex;gap:6px}.wp-complete-section-head button{padding:6px 9px;font-size:12px}
.work-plan-complete-list{max-height:300px}.wp-complete-item{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:8px!important;align-items:center!important}.wp-complete-item-main{overflow:hidden;text-overflow:ellipsis}.wp-complete-item-hours{font-size:12px;color:var(--muted);white-space:nowrap}
.wp-complete-process{display:grid;gap:7px}.wp-complete-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wp-complete-mode label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:9px;padding:10px;background:#fff;font-weight:700}.wp-complete-mode label:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.wp-complete-mode label.is-disabled{opacity:.55}
.wp-complete-postscript{display:grid;gap:5px}.wp-complete-postscript small{font-weight:400;color:var(--muted)}
@media(max-width:700px){.wp-complete-summary{grid-template-columns:1fr 1fr}.wp-complete-summary>label{grid-column:1/-1}.wp-complete-mode{grid-template-columns:1fr}}

/* V67 permission tree */
[data-group-id]{cursor:pointer}[data-group-id].is-selected{background:#e8f1fb!important;box-shadow:inset 3px 0 0 var(--primary)}
.permission-panel{overflow:visible}.permission-tree{display:grid;gap:14px}.permission-category-block{border:1px solid #dfe6ee;border-radius:10px;overflow:hidden}.permission-category-block>h4{margin:0;padding:11px 14px;background:#eef3f8;font-size:15px;color:#263b55}.permission-group{border-top:1px solid #dfe6ee}.permission-group:first-of-type{border-top:0}.permission-group>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:#f8fafc}.permission-group-view{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.permission-group-view input,.permission-actions input{width:17px;height:17px}.permission-leaves{display:grid}.permission-leaf{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:14px;align-items:center;padding:10px 14px;border-top:1px solid #edf1f5}.permission-leaf-title{font-weight:700;font-size:13px}.permission-actions{display:flex;justify-content:flex-end;gap:8px 14px;flex-wrap:wrap}.permission-actions label{display:inline-flex;align-items:center;gap:5px;font-size:12px;min-width:58px}.permission-titlebar{margin-bottom:12px}
@media(max-width:720px){.permission-leaf{grid-template-columns:1fr}.permission-actions{justify-content:flex-start}.permission-group>header{align-items:flex-start}}

/* V67 work-management editor */
.modal.wm-work-editor-modal{width:min(940px,calc(100vw - 32px))}
.wm-editor-form{grid-template-columns:1fr;gap:12px}.wm-editor-section{border:1px solid #dce4ec;border-radius:10px;padding:12px;background:#fff}.wm-editor-section>h4,.wm-editor-section-head h4{margin:0 0 10px;font-size:14px;color:#263b55}.wm-editor-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.wm-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.wm-editor-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.wm-editor-grid .full{grid-column:1/-1}.wm-editor-flags{display:flex;gap:14px;align-items:center;flex-wrap:wrap;align-self:end;min-height:42px}.wm-editor-attachment{display:flex;align-items:center;gap:10px}.wm-editor-attachment h4{margin:0 auto 0 0}.wm-editor-attachment small{color:var(--muted)}.wm-form-folder-open.has-attachment{background:#15803d;border-color:#15803d;color:#fff}.modal.wm-work-editor-modal>footer .danger-button{margin-right:auto}.wm-auto-plan-hint:empty{display:none}
@media(max-width:760px){.modal.wm-work-editor-modal{width:min(100%,calc(100vw - 16px))}.wm-editor-grid,.wm-editor-grid-3{grid-template-columns:1fr}.wm-editor-grid .full{grid-column:auto}.wm-editor-flags{align-self:auto}}

/* V68 admin user lifecycle filter */
.admin-user-toolbar{display:flex;align-items:center;gap:8px}.admin-user-toolbar #adminUserStatus{width:130px;min-width:130px}.admin-user-toolbar .custom-select-display{min-height:34px}.data-table tr.is-retired-user{background:#f6f7f8;color:#667085}


/* V70 mobile: dense shell + fixed-work card layout without horizontal table scrolling. */
.fixed-mobile-meta{display:none}
@media(max-width:760px){
  .topbar-main{align-items:flex-start;gap:6px}.major-nav,.secondary-nav{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.major-nav button,.secondary-nav button{flex:0 0 auto;white-space:nowrap}
  .modal-backdrop{padding:8px!important}.modal{width:min(100%,calc(100vw - 16px))!important;max-height:calc(100dvh - 16px)!important}.modal>header{padding:9px 11px!important}.modal-body{padding:10px!important}.modal>footer{padding:8px 10px!important;gap:6px!important}
  .custom-select-popover{max-width:calc(100vw - 16px)!important;max-height:min(52dvh,360px)!important}
  .fixed-list-table-wrap{overflow:visible!important}.fixed-list-table{display:block!important;width:100%!important;min-width:0!important;border:0!important}.fixed-list-table thead{display:none!important}.fixed-list-table tbody{display:grid!important;gap:8px!important}.fixed-list-table tbody .fixed-list-row{display:grid!important;grid-template-columns:40px 70px minmax(0,1fr)!important;align-items:start!important;width:100%!important;padding:8px!important;border:1px solid #cfd9e1!important;border-radius:10px!important;background:#fff!important;box-shadow:0 2px 7px rgba(31,54,72,.05)!important}.fixed-list-table tbody .fixed-list-row>td{display:block!important;width:auto!important;min-width:0!important;height:auto!important;padding:4px 5px!important;border:0!important;background:transparent!important;box-shadow:none!important}.fixed-list-table .merged-cell,.fixed-list-table .fixed-no-cell,.fixed-list-table .fixed-source-cell{display:none!important}.fixed-list-table .fixed-select-cell{grid-column:1;grid-row:1;padding-top:7px!important}.fixed-list-table .fixed-order-cell{grid-column:2;grid-row:1}.fixed-list-table .fixed-task-cell{grid-column:3;grid-row:1;font-size:14px!important;line-height:1.4}.fixed-mobile-meta{display:block;margin-bottom:3px;color:#66798a;font-size:10px;font-weight:700;line-height:1.35}.fixed-list-table .fixed-content-cell,.fixed-list-table .fixed-hours-cell,.fixed-list-table .fixed-owner-cell,.fixed-list-table .fixed-memo-cell{grid-column:1/-1;display:grid!important;grid-template-columns:76px minmax(0,1fr)!important;gap:7px;align-items:start;padding:6px 5px!important;border-top:1px solid #edf1f4!important}.fixed-list-table [data-label]::before{content:attr(data-label);color:#526779;font-size:10px;font-weight:900;line-height:1.5}.fixed-list-table .fixed-owner-cell{padding-right:24px!important}.fixed-list-table .fixed-owner-cell::after{top:7px}.fixed-list-table .fixed-order-buttons{grid-template-columns:repeat(2,30px)}.fixed-list-table .fixed-order-buttons .table-button{width:30px;min-width:30px;height:30px}.fixed-list-table .drag-handle{display:none}.fixed-list-shell .work-manage-toolbar{align-items:stretch;flex-direction:column;gap:6px}.fixed-list-shell .work-manage-toolbar>div{display:flex;gap:5px;overflow-x:auto}.fixed-list-shell .work-manage-toolbar button{flex:0 0 auto}
}

/* V77 인사관리 */
.hr-tabs,.hr-subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.hr-tabs .active,.hr-subtabs .active{border-color:#2d6fb2;background:#e8f1fb;color:#174e84;font-weight:800}.hr-body{min-height:0}.hr-panel{gap:12px}.hr-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hr-toolbar>input{box-sizing:border-box;min-width:260px;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:8px 10px}.hr-toolbar>.custom-select{min-width:150px}.hr-summary{margin:0}.hr-employee-table{min-width:1120px}.hr-employee-table th:nth-child(1){width:90px}.hr-employee-table th:nth-child(2){width:90px}.hr-employee-table th:nth-child(3){width:250px}.hr-employee-table .number-cell{text-align:right;white-space:nowrap}.hr-linked-value{min-height:38px;display:flex;align-items:center;padding:0 10px;border:1px solid #dce4eb;border-radius:8px;background:#f7f9fb;color:#40546a}.hr-employee-modal .modal-card{max-width:1080px}.hr-employee-form{grid-template-columns:repeat(4,minmax(0,1fr))!important}.hr-employee-form .full{grid-column:1/-1!important}.hr-salary-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:14px}.hr-salary-inputs{display:grid;gap:10px;align-content:start;border:1px solid #dce4eb;border-radius:10px;padding:12px;background:#fbfcfd}.hr-salary-inputs .form-field{display:grid;gap:5px}.hr-salary-inputs input,.hr-salary-inputs textarea{box-sizing:border-box;width:100%;border:1px solid #d4dde5;border-radius:8px;padding:8px 9px}.hr-salary-preview-box{min-width:0;border:1px solid #dce4eb;border-radius:10px;padding:12px;background:#fff}.hr-preview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.hr-preview-cards article,.hr-wage-strip article{border:1px solid #dce4eb;border-radius:9px;padding:10px;background:#f8fafc}.hr-preview-cards span,.hr-wage-strip span{display:block;color:#687888;font-size:12px}.hr-preview-cards strong,.hr-wage-strip strong{display:block;margin-top:4px;font-size:17px}.hr-wage-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.hr-wage-strip small{display:block;margin-top:4px;color:#607184}.hr-history-table{min-width:1050px}.hr-ecount-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px}.hr-ecount-people{border:1px solid #dce4eb;border-radius:10px;overflow:hidden}.hr-ecount-people .hr-toolbar{padding:9px 10px;border-bottom:1px solid #e8edf2}.hr-check-all{display:flex;align-items:center;gap:6px;font-weight:800}.hr-export-list{max-height:520px;overflow:auto}.hr-export-list label{display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto;column-gap:5px;padding:7px 9px;border-bottom:1px solid #eef2f5;cursor:pointer}.hr-export-list label:hover{background:#f5f9fc}.hr-export-list input{grid-row:1/3;align-self:center}.hr-export-list span{font-weight:800}.hr-export-list small{color:#718091}.hr-ecount-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.hr-export-card{border:1px solid #dce4eb;border-radius:10px;padding:13px;background:#fff}.hr-export-card h4{margin:0 0 5px;font-size:16px}.hr-export-card p{margin:0 0 12px;color:#607184;font-size:13px}.hr-reference-body{display:grid;gap:10px}.hr-condition-editor{margin-top:12px;border:1px solid #dce4eb;border-radius:10px;padding:10px}.hr-condition-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.hr-condition-rows{display:grid;gap:7px}.hr-condition-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(130px,.9fr) minmax(170px,1.2fr) 34px;gap:7px;align-items:center}.hr-condition-row input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:8px 9px}.hr-condition-row .icon-button{min-height:34px}.hr-reference-body .data-table{min-width:760px}
@media(max-width:1100px){.hr-employee-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}.hr-salary-layout{grid-template-columns:1fr}.hr-ecount-layout{grid-template-columns:1fr}.hr-ecount-people{max-height:360px}.hr-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hr-wage-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.hr-toolbar{align-items:stretch}.hr-toolbar>input{min-width:0;width:100%}.hr-toolbar>.custom-select{min-width:0;flex:1}.hr-employee-form{grid-template-columns:1fr!important}.hr-employee-form .full{grid-column:auto!important}.hr-ecount-types{grid-template-columns:1fr}.hr-preview-cards,.hr-wage-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.hr-condition-row{grid-template-columns:1fr}.hr-condition-row .icon-button{justify-self:end}.hr-tabs{position:sticky;top:0;z-index:3;background:#f4f7fa;padding:4px 0}.hr-tabs button{flex:1;min-width:90px}}
.hr-check-option{min-height:38px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #dce4eb;border-radius:8px;background:#fff;font-weight:700}.hr-check-option input{width:18px!important;height:18px;flex:0 0 auto}.hr-check-option span{font-size:13px;color:#40546a}
.hr-history-table tr.hr-department-start td{border-top-width:2px}.hr-history-table tr.hr-department-start:first-child td{border-top-width:1px}.hr-history-table td.hr-history-merged{vertical-align:middle;background:#f8fafc}.hr-history-table td.hr-history-dept{font-weight:700;color:#334155}.hr-history-table td.hr-history-name{font-weight:800}.hr-salary-baseline{grid-template-columns:repeat(3,minmax(0,1fr))}.hr-ecount-people .hr-toolbar>input{min-width:180px;flex:1}.hr-insurance-age-field[hidden],.hr-insurance-foreign-field[hidden],.hr-insurance-result-field[hidden]{display:none!important}
@media(max-width:760px){.hr-salary-baseline{grid-template-columns:1fr}.hr-ecount-people .hr-toolbar>input{min-width:0}}

/* V82 HR salary batch workflow */
.hr-salary-batch{min-width:1380px}.hr-salary-batch th:first-child,.hr-salary-batch td:first-child{width:34px;text-align:center}.hr-salary-batch .hr-money-input{box-sizing:border-box;width:132px;min-height:34px;border:1px solid #ccd7e1;border-radius:7px;padding:6px 8px;text-align:right;font-variant-numeric:tabular-nums}.hr-table-sub{display:block;margin-top:2px;color:#7b8997;font-size:11px;font-weight:400}.hr-inline-date{display:flex;align-items:center;gap:6px}.hr-inline-date input{min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:6px 8px}.hr-salary-batch .number-cell{white-space:nowrap;text-align:right}.hr-salary-batch .status-pill{white-space:nowrap}
@media(max-width:760px){.hr-salary-batch{min-width:1200px}.hr-inline-date{width:100%}.hr-inline-date input{flex:1}}

/* V83 HR salary compact layout */
.hr-salary-toolbar{gap:6px;align-items:center;flex-wrap:wrap}
.hr-salary-batch{min-width:1180px}
.hr-salary-batch th,.hr-salary-batch td{padding:6px 7px;white-space:nowrap}
.hr-salary-batch .hr-money-input{width:118px;min-height:32px;padding:5px 7px}
.hr-salary-batch .number-cell{font-variant-numeric:tabular-nums}
@media(max-width:760px){.hr-salary-batch{min-width:1080px}}

.queue-worker-state{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid #dce4ec;border-radius:8px;background:#f7f9fc;font-size:12px}.queue-worker-state.is-ok strong{color:#17663a}.queue-worker-state.is-error{border-color:#e6b4b4;background:#fff4f4}.queue-worker-state.is-error strong{color:#a23838}.queue-worker-state span{color:#667085}.queue-cancel-button{min-width:74px;padding:6px 9px;font-size:12px;white-space:nowrap}

/* V88: 급여조정 표를 가로 스크롤 없이 한 화면에서 비교하도록 압축한다. */
.hr-salary-batch{width:100%;min-width:0;table-layout:fixed}
.hr-salary-batch th,.hr-salary-batch td{padding:5px 4px;font-size:11px;overflow:hidden;text-overflow:ellipsis}
.hr-salary-batch th:first-child,.hr-salary-batch td:first-child{width:2%}
.hr-salary-batch th:nth-child(2){width:7%}.hr-salary-batch th:nth-child(3){width:5%}.hr-salary-batch th:nth-child(4){width:7%}.hr-salary-batch th:nth-child(5){width:5%}
.hr-salary-batch th:nth-child(6),.hr-salary-batch th:nth-child(7),.hr-salary-batch th:nth-child(8){width:9%}
.hr-salary-batch th:nth-child(9){width:8%}.hr-salary-batch th:nth-child(10){width:5%}
.hr-salary-batch th:nth-child(11){width:6%}.hr-salary-batch th:nth-child(12),.hr-salary-batch th:nth-child(13){width:5%}.hr-salary-batch th:nth-child(14){width:6%}
.hr-salary-batch th:nth-child(15){width:8%}.hr-salary-batch th:nth-child(16){width:4%}
.hr-salary-batch .hr-money-input{width:100%;min-width:0;min-height:30px;padding:4px 5px;font-size:11px}
.hr-salary-batch .hr-salary-basis .custom-select-display{min-height:30px;padding:5px 6px;font-size:11px}
.hr-salary-batch .hr-salary-basis .custom-select-popover{min-width:110px}
.hr-carry-row td{background:#fafbfc}
.status-pill.neutral{background:#eef1f4;color:#586777}
@media(max-width:1200px){.hr-salary-batch th,.hr-salary-batch td{font-size:10px;padding:4px 3px}.hr-salary-batch .hr-money-input{font-size:10px}}

/* V96 급여조정 필터/최저임금 기준 요약 */
.hr-salary-actions-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:0}
.hr-min-variable{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;min-height:42px;padding:5px 9px;border:1px solid #d7e0ec;border-radius:7px;background:#f7faff;font-size:12px;color:#334155;white-space:nowrap}
.hr-min-variable-main,.hr-min-variable-change{display:flex;align-items:center;justify-content:flex-end;gap:9px}.hr-min-variable strong{color:#174d82}.hr-min-variable span{font-variant-numeric:tabular-nums}.hr-min-variable-change{font-size:11px;color:#475569}
.hr-salary-toolbar>#hrSalaryDepartment,.hr-salary-toolbar>#hrSalaryForeign,.hr-salary-toolbar>#hrSalaryPayrollType{min-width:150px}
@media(max-width:900px){.hr-salary-actions-wrap{align-items:stretch}.hr-min-variable{align-items:flex-start;justify-content:flex-start;white-space:normal}.hr-min-variable-main,.hr-min-variable-change{justify-content:flex-start;flex-wrap:wrap}.hr-salary-toolbar>#hrSalaryDepartment,.hr-salary-toolbar>#hrSalaryForeign,.hr-salary-toolbar>#hrSalaryPayrollType{min-width:0}}
.hr-history-name-link{border:0;background:transparent;padding:0;color:#174f87;font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.hr-history-name-link:hover{color:#0b3b6d}.hr-history-dept small{color:#64748b;font-weight:700}


/* V103 mobile shell: keep hierarchy compact and prevent side-context title wrapping. */
@media(max-width:760px){
  .sidebar{padding:8px 8px 6px;overflow:visible}
  .sidebar-brand{display:flex;align-items:baseline;gap:8px;margin:0 4px 6px}
  .sidebar-brand strong{font-size:17px}.sidebar-brand small{margin:0;font-size:10px}
  .sidebar-user{margin:0 0 6px;padding:6px 8px;line-height:1.35}
  .sidebar-user b{font-size:11px}.sidebar-user span{font-size:10px}
  .main-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 2px;scrollbar-width:none}
  .main-nav::-webkit-scrollbar{display:none}
  .main-nav .side-context{display:none!important}
  .main-nav .nav-item{flex:0 0 auto;width:auto;min-height:34px;padding:6px 9px;white-space:nowrap}
  .sidebar-bottom{display:flex;align-items:center;gap:5px;margin:5px 0 0;padding:5px 0 0;border-top:1px solid rgba(255,255,255,.12);overflow-x:auto}
  .sidebar-bottom .password-change-button,.sidebar-bottom .logout-button{flex:0 0 auto;margin:0;min-height:30px;padding:5px 7px;font-size:10px}
  .nav-version{display:flex;flex:0 0 auto;gap:5px;margin:0 0 0 auto;align-items:center;white-space:nowrap;font-size:9px}
  .nav-version span{display:inline}.nav-version strong{font-size:9px}
  .topbar{padding-top:8px}
  .topbar-main{padding:0 4px 6px}
  .breadcrumb{display:none}
}

/* V110 HR fixed viewport: keep page fixed and scroll only data bodies. */
.hr-body{min-height:0;overflow:hidden}
.hr-body>.hr-panel{box-sizing:border-box;height:100%;min-height:0;margin-top:0;display:flex;flex-direction:column;overflow:hidden}
.hr-body>.hr-panel>.data-table-wrap{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain}
.hr-body>.hr-panel>.data-table-wrap>.data-table thead th{position:sticky;top:0;z-index:2}
.hr-body>.hr-panel>.hr-ecount-layout{flex:1;min-height:0;overflow:hidden}
.hr-body .hr-ecount-people{display:flex;flex-direction:column;min-height:0}
.hr-body .hr-export-list{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.hr-body .hr-ecount-types{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.hr-body .hr-reference-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.hr-body .hr-reference-body>.data-table-wrap{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain}
.hr-body .hr-reference-body>.data-table-wrap>.data-table thead th{position:sticky;top:0;z-index:2}
.hr-salary-batch th,.hr-salary-batch td{font-size:12px;padding:6px 5px}
.hr-salary-batch .hr-money-input,.hr-salary-batch .hr-salary-basis .custom-select-display{font-size:12px}
.hr-salary-batch th:first-child,.hr-salary-batch td:first-child{width:2.2%}
.hr-salary-batch th:nth-child(2){width:7.2%}.hr-salary-batch th:nth-child(3){width:5.4%}.hr-salary-batch th:nth-child(4){width:7.5%}.hr-salary-batch th:nth-child(5){width:5.5%}
.hr-salary-batch th:nth-child(6),.hr-salary-batch th:nth-child(7){width:9.2%}
.hr-salary-batch th:nth-child(8){width:8.5%}.hr-salary-batch th:nth-child(9){width:5.2%}
.hr-salary-batch th:nth-child(10){width:6.2%}.hr-salary-batch th:nth-child(11),.hr-salary-batch th:nth-child(12){width:5.2%}.hr-salary-batch th:nth-child(13){width:6.2%}
.hr-salary-batch th:nth-child(14){width:8.5%}.hr-salary-batch th:nth-child(15){width:4.2%}
@media(max-width:1200px){.hr-salary-batch th,.hr-salary-batch td{font-size:11px;padding:5px 4px}.hr-salary-batch .hr-money-input,.hr-salary-batch .hr-salary-basis .custom-select-display{font-size:11px}}

/* V111: 인사평가 · 연봉 기준관리 */
.hr-evaluation-body{display:grid;gap:10px;min-height:0}.hr-eval-panel{gap:10px}.hr-eval-tabs{margin:0}.hr-eval-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:0}.hr-eval-year{box-sizing:border-box;width:96px;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:6px 8px;text-align:center;font-weight:800}.hr-eval-table,.hr-eval-salary-table{width:100%;min-width:0;table-layout:fixed}.hr-eval-table th,.hr-eval-table td,.hr-eval-salary-table th,.hr-eval-salary-table td{padding:6px 5px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hr-eval-table th:nth-child(1){width:8%}.hr-eval-table th:nth-child(2){width:8%}.hr-eval-table th:nth-child(3){width:7%}.hr-eval-table th:nth-child(4){width:6%}.hr-eval-table th:nth-child(5),.hr-eval-table th:nth-child(6){width:5%}.hr-eval-table th:nth-child(7),.hr-eval-table th:nth-child(8),.hr-eval-table th:nth-child(9){width:5%}.hr-eval-table th:nth-child(10),.hr-eval-table th:nth-child(11),.hr-eval-table th:nth-child(12){width:9%}.hr-eval-table th:nth-child(13){width:6%}.hr-eval-table th:nth-child(14){width:8%}.hr-eval-salary-table th:nth-child(1){width:8%}.hr-eval-salary-table th:nth-child(2){width:7%}.hr-eval-salary-table th:nth-child(3),.hr-eval-salary-table th:nth-child(9),.hr-eval-salary-table th:nth-child(11){width:9%}.hr-eval-salary-table th:nth-child(4),.hr-eval-salary-table th:nth-child(5),.hr-eval-salary-table th:nth-child(6),.hr-eval-salary-table th:nth-child(7),.hr-eval-salary-table th:nth-child(8){width:7%}.hr-eval-salary-table th:nth-child(10),.hr-eval-salary-table th:nth-child(12),.hr-eval-salary-table th:nth-child(13){width:6%}.hr-eval-salary-table th:nth-child(14){width:8%}.hr-eval-criteria-body{display:grid;gap:10px}.hr-eval-band-table{min-width:760px}.hr-eval-record-form{grid-template-columns:repeat(4,minmax(0,1fr))!important}.hr-eval-record-form .full{grid-column:1/-1!important}.hr-eval-job-editor{display:grid;gap:7px;border:1px solid #dce4eb;border-radius:9px;padding:9px;background:#f8fafc}.hr-eval-job-rows{display:grid;gap:6px}.hr-eval-job-row{display:grid;grid-template-columns:minmax(220px,1fr) 110px 36px;gap:7px;align-items:center}.hr-eval-job-row input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:7px 8px;text-align:right}.hr-eval-job-editor small{color:#64748b}.hr-eval-content .number-cell{font-variant-numeric:tabular-nums;text-align:right}.hr-eval-content h4{margin:0;font-size:16px}.hr-eval-content .data-table-wrap{max-height:calc(100vh - 330px)}
@media(max-width:1100px){.hr-eval-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.hr-eval-record-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.hr-eval-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.hr-eval-record-form{grid-template-columns:1fr!important}.hr-eval-job-row{grid-template-columns:minmax(0,1fr) 90px 34px}.hr-eval-content .data-table-wrap{max-height:none;overflow:auto}.hr-eval-table,.hr-eval-salary-table{min-width:1180px;table-layout:auto}}

.hr-eval-budget-warning{display:block;margin-top:4px;font-size:11px;font-weight:700;}

/* V112 인사평가: 소분류별 전체화면 · 상단 요약 1행 · 데이터행 내부 스크롤 */
.hr-evaluation-body{box-sizing:border-box;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}
.hr-eval-head{flex:0 0 auto;margin:0}
.hr-eval-summary{flex:0 0 auto;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:8px!important;margin:0!important;overflow:visible}
.hr-eval-summary article{min-width:0;padding:10px 12px}
.hr-eval-summary strong{font-size:18px;white-space:nowrap}
.hr-eval-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.hr-eval-content>.hr-eval-panel{box-sizing:border-box;flex:1;min-height:0;margin:0;display:flex;flex-direction:column;overflow:hidden}
.hr-eval-fill-panel>.data-table-wrap,.hr-eval-criteria-body>.data-table-wrap{flex:1;min-height:0;max-height:none!important;overflow:auto;overscroll-behavior:contain}
.hr-eval-fill-panel>.data-table-wrap>.data-table thead th,.hr-eval-criteria-body>.data-table-wrap>.data-table thead th{position:sticky;top:0;z-index:3}
.hr-eval-criteria-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.hr-eval-criteria-tabs{flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto;margin-bottom:8px}
.hr-eval-criteria-tabs button{white-space:nowrap}
.hr-eval-salary-summary{grid-template-columns:repeat(4,minmax(0,1fr));flex:0 0 auto}
.hr-eval-judge-guide{display:block;min-height:34px;padding:6px 8px;border-radius:6px;background:#f6f8fa;color:#596b80;font-weight:500;line-height:1.35}
.hr-eval-record-form #evalFreezeReason{box-sizing:border-box;width:100%;min-height:38px;margin-top:6px;border:1px solid #d4dde5;border-radius:8px;padding:8px 10px}
.custom-select-popover.custom-select-popover-portal{z-index:10000!important;pointer-events:auto!important}
@media(max-width:1100px){.hr-eval-summary{grid-template-columns:repeat(6,minmax(118px,1fr))!important;overflow-x:auto}.hr-eval-record-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.hr-eval-summary{grid-template-columns:repeat(6,minmax(118px,1fr))!important;overflow-x:auto}.hr-eval-record-form{grid-template-columns:1fr!important}.hr-eval-job-row{grid-template-columns:minmax(0,1fr) 90px 34px}.hr-eval-table,.hr-eval-salary-table{min-width:1180px;table-layout:auto}}


/* V114 인사평가: 작업영역 자체는 고정하고 데이터행만 스크롤 */
body.hr-evaluation-page-active{overflow:hidden}
body.hr-evaluation-page-active .app-shell{height:100vh;min-height:0;overflow:hidden}
body.hr-evaluation-page-active .main-area{display:flex;height:100vh;min-height:0;flex-direction:column;overflow:hidden}
body.hr-evaluation-page-active .topbar{flex:0 0 auto}
body.hr-evaluation-page-active .workspace{box-sizing:border-box;flex:1;min-width:0;min-height:0;padding:8px 18px 6px;overflow:hidden}
body.hr-evaluation-page-active .view.is-active{height:100%;min-height:0;overflow:hidden}
body.hr-evaluation-page-active .hr-evaluation-body{height:100%!important;min-height:0!important;max-height:100%!important;overflow:hidden}
body.hr-evaluation-page-active .hr-eval-content{flex:1;min-height:0;overflow:hidden}
body.hr-evaluation-page-active .hr-eval-content>.hr-eval-panel{flex:1;min-height:0;overflow:hidden}
body.hr-evaluation-page-active .hr-eval-table-scroll{flex:1;min-height:0;max-height:none!important;overflow-y:auto!important;overflow-x:auto!important;overscroll-behavior:contain}
body.hr-evaluation-page-active .hr-eval-table-scroll thead th{position:sticky;top:0;z-index:4}
.hr-salary-batch input[type="checkbox"],.hr-salary-all{width:22px!important;height:22px!important;min-width:22px;cursor:pointer;vertical-align:middle}
@media(max-width:820px){body.hr-evaluation-page-active{overflow:auto}body.hr-evaluation-page-active .app-shell,body.hr-evaluation-page-active .main-area{height:auto;overflow:visible}body.hr-evaluation-page-active .workspace,body.hr-evaluation-page-active .view.is-active,body.hr-evaluation-page-active .hr-evaluation-body{height:auto!important;max-height:none!important;overflow:visible}.hr-eval-table-scroll{max-height:65vh!important;overflow:auto!important}}

/* V116 인사평가 가독성 · 연봉 승인/협의 */
.hr-eval-table th,.hr-eval-table td,.hr-eval-salary-table th,.hr-eval-salary-table td,.hr-eval-history-table th,.hr-eval-history-table td,.hr-eval-criteria-body .data-table th,.hr-eval-criteria-body .data-table td{font-size:13px!important;line-height:1.4}
.hr-eval-content .muted,.hr-eval-content .request-guide,.hr-eval-content .form-field>span,.hr-eval-content .hr-linked-value,.hr-eval-job-editor small{font-size:13px;line-height:1.45}
.hr-eval-content .custom-select__value,.hr-eval-content input,.hr-eval-content textarea,.hr-eval-content button{font-size:14px}
.hr-eval-judge-guide{font-size:13px!important;line-height:1.5!important}
.hr-eval-salary-table{min-width:1660px;table-layout:auto!important}
.hr-eval-salary-table .check-col{width:38px!important;min-width:38px;max-width:38px;text-align:center}
.hr-eval-salary-table input[type="checkbox"]{width:20px;height:20px;vertical-align:middle}
.hr-eval-salary-table th:nth-child(2){min-width:105px}.hr-eval-salary-table th:nth-child(3){min-width:80px}
.hr-eval-salary-table th:nth-child(n+4):nth-child(-n+15){min-width:92px}
.hr-eval-salary-table th:nth-child(16){min-width:92px}
.hr-eval-salary-summary article small{display:block;margin-top:3px;font-size:11px;color:#637287;white-space:nowrap}
.hr-eval-salary-toolbar{flex:0 0 auto}
.hr-eval-review-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.hr-eval-salary-review-form input,.hr-eval-salary-review-form textarea{box-sizing:border-box;width:100%}
.hr-eval-history-table{width:100%;min-width:1180px;table-layout:auto}
@media(max-width:820px){.hr-eval-table th,.hr-eval-table td,.hr-eval-salary-table th,.hr-eval-salary-table td,.hr-eval-history-table th,.hr-eval-history-table td,.hr-eval-criteria-body .data-table th,.hr-eval-criteria-body .data-table td{font-size:13px!important}.hr-eval-review-summary{grid-template-columns:repeat(2,minmax(150px,1fr))}}
/* V116 HR evaluation workflow/layout */
body.hr-evaluation-page-active .hr-eval-salary-scroll{overflow-x:hidden!important}
.hr-eval-salary-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.hr-eval-salary-table th,.hr-eval-salary-table td{min-width:0!important;padding:6px 4px!important;font-size:13px!important}
.hr-eval-salary-table .check-col{width:3%!important;min-width:0!important;max-width:none!important}
.hr-eval-salary-table th:nth-child(2){width:8%!important}.hr-eval-salary-table th:nth-child(3){width:7%!important}.hr-eval-salary-table th:nth-child(4){width:5%!important}
.hr-eval-salary-table th:nth-child(5),.hr-eval-salary-table th:nth-child(6),.hr-eval-salary-table th:nth-child(7),.hr-eval-salary-table th:nth-child(8),.hr-eval-salary-table th:nth-child(9){width:9%!important}
.hr-eval-salary-table th:nth-child(10){width:8%!important}.hr-eval-salary-table th:nth-child(11){width:6%!important}.hr-eval-salary-table th:nth-child(12){width:6%!important}.hr-eval-salary-table th:nth-child(13){width:12%!important}
.hr-eval-status-table th,.hr-eval-status-table td{font-size:13px!important}
.hr-eval-status-table th:nth-child(1){width:10%!important}.hr-eval-status-table th:nth-child(2){width:9%!important}.hr-eval-status-table th:nth-child(3){width:7%!important}.hr-eval-status-table th:nth-child(4){width:6%!important}.hr-eval-status-table th:nth-child(5){width:6%!important}.hr-eval-status-table th:nth-child(6),.hr-eval-status-table th:nth-child(7){width:8%!important}.hr-eval-status-table th:nth-child(8),.hr-eval-status-table th:nth-child(9),.hr-eval-status-table th:nth-child(10){width:10%!important}.hr-eval-status-table th:nth-child(11){width:7%!important}.hr-eval-status-table th:nth-child(12){width:9%!important}
.hr-eval-inline-select .custom-select-display{min-height:32px!important;padding:4px 24px 4px 6px!important;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr-eval-merged-dept{vertical-align:middle!important;font-weight:700;background:#f8fafc;border-right:1px solid #dbe2e8!important}
.hr-eval-job-delete{position:relative;z-index:2}
.hr-eval-review-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important}
@media(max-width:820px){.hr-eval-review-summary{grid-template-columns:repeat(2,minmax(150px,1fr))!important}} /* V127 review summary mobile */
@media(max-width:820px){.hr-eval-salary-table{min-width:980px!important;table-layout:auto!important}.hr-eval-status-table{min-width:980px!important;table-layout:auto!important}}

/* V117 HR evaluation compact selectors and salary-band grouping */
.custom-select-detail{margin-top:6px;padding:8px 9px;border-top:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:12px;line-height:1.45;white-space:normal}
.hr-eval-criteria-popover{min-width:300px!important;max-width:min(360px,calc(100vw - 16px))!important}
.hr-eval-criteria-popover .custom-select-option{font-weight:800;padding:7px 9px}
.hr-eval-criteria-popover .custom-select-detail{min-height:48px;max-height:84px;overflow:auto}
.hr-eval-inline-select .custom-select-label{font-weight:800;text-align:center}
.hr-eval-band-table .hr-band-track{font-weight:800;background:#f8fafc}

/* V120 연봉테이블 */
.hr-salary-table-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;flex:0 0 auto}
.hr-salary-reference-table{width:100%;min-width:760px;table-layout:fixed}
.hr-salary-reference-table th,.hr-salary-reference-table td{font-size:13px!important;padding:6px 8px!important}
.hr-salary-reference-table th small{display:block;margin-top:2px;font-size:10px;color:#64748b;font-weight:500}
.hr-salary-reference-table th:nth-child(1){width:11%}.hr-salary-reference-table th:nth-child(2){width:8%}.hr-salary-reference-table th:nth-child(3){width:15%}
.hr-salary-reference-table thead tr:first-child th{background:#e8eef6;color:#31445c;font-weight:800;text-align:center;border-bottom:1px solid #c5d0dc}
.hr-salary-reference-table .hr-salary-performance-group{background:#dfe8f2!important;letter-spacing:.04em}
.hr-salary-reference-table .hr-salary-performance-head{text-align:center;background:#f1f5f9;color:#334155}
.hr-salary-reference-table .hr-salary-performance-head.is-standard,.hr-salary-reference-table .hr-salary-performance-cell.is-standard{background:#edf7e9!important}
.hr-salary-reference-table .hr-salary-rank-cell{vertical-align:middle!important;text-align:center!important;font-weight:800;background:#fff2cc;color:#6a4a00;border-right:1px solid #d7c58c}
.hr-salary-reference-table .hr-salary-base-cell{font-weight:800;background:#f8fafc}
.hr-salary-table-rank-start td{border-top:2px solid #94a3b8!important}
.hr-eval-policy-form .hr-policy-help{display:block;min-height:16px;line-height:16px;margin:0;color:#64748b;font-size:11px;font-weight:500}
.hr-eval-policy-form .form-field>input{width:100%;box-sizing:border-box}
@media(max-width:980px){.hr-salary-table-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.hr-salary-reference-table{min-width:820px}}

/* V121 payroll-type allowance editor */
.hr-payroll-allowance-editor{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line,#d9e1eb);border-radius:10px;background:#f8fafc}
.hr-payroll-allowance-head,.hr-payroll-allowance-row{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(140px,1.2fr) minmax(170px,1.4fr) minmax(120px,1fr) 80px 70px 36px;gap:8px;align-items:center}
.hr-payroll-allowance-head{font-size:12px;font-weight:700;color:#526277;padding:0 4px}
.hr-payroll-allowance-row input{min-width:0;width:100%}
.hr-payroll-allowance-editor small{color:#66758a}
@media(max-width:900px){.hr-payroll-allowance-editor{overflow-x:auto}.hr-payroll-allowance-head,.hr-payroll-allowance-row{min-width:920px}}
.hr-payroll-allowance-head-simple,.hr-payroll-allowance-row-simple{grid-template-columns:minmax(90px,.8fr) minmax(180px,1.35fr) minmax(190px,1.45fr) minmax(130px,1fr) 36px}
@media(max-width:900px){.hr-payroll-allowance-head-simple,.hr-payroll-allowance-row-simple{min-width:760px}}

/* V121 Apps Script integration */
.request-apps-script-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px;border:1px solid var(--border,#d9dde5);border-radius:14px;margin:16px 0}.request-apps-script-card p{margin:8px 0 0;line-height:1.65;color:var(--muted,#667085)}.request-apps-script-card .check-card{min-width:150px;justify-content:center}

/* V127 HR salary criteria clarity */
.hr-salary-base-cell small{margin-left:3px;font-size:10px;color:#64748b;font-weight:600}
.hr-salary-performance-head small{white-space:normal;line-height:1.2}
.hr-eval-target-salary{background:#f8fafc;font-weight:700}

.admin-queue-wrap{width:100%;max-width:100%;overflow:auto}
.admin-queue-table{width:100%;min-width:980px;max-width:100%;table-layout:fixed}
.admin-queue-table .queue-col-time{width:168px}.admin-queue-table .queue-col-id{width:220px}.admin-queue-table .queue-col-operation{width:170px}.admin-queue-table .queue-col-entity{width:180px}.admin-queue-table .queue-col-status{width:90px}.admin-queue-table .queue-col-error{width:auto}.admin-queue-table .queue-col-action{width:100px}
.admin-queue-table th,.admin-queue-table td{max-width:0}
.admin-queue-table .queue-time-cell,.admin-queue-table .queue-text-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-queue-table .queue-error-cell{overflow-wrap:anywhere;word-break:break-word;white-space:normal}

.home-quick-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:15px 18px;border:1px solid #cbd9e6;border-radius:10px;background:#f7fbff}.home-quick-panel div{display:grid;gap:3px}.home-quick-panel strong{font-size:16px}.home-quick-panel span{color:#667085;font-size:12px}.home-quick-panel button{flex:0 0 auto}.work-plan-table .wp-content-cell,.work-plan-table .wp-memo-cell{cursor:text}

/* V130 구인관리 */
.hr-recruit-panel .hr-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0;}
.hr-recruit-panel .hr-toolbar>input{min-width:220px;flex:1 1 260px;}
.hr-recruit-panel .hr-toolbar>.custom-select{min-width:170px;}
.hr-recruitment-modal .hr-rec-candidate-form{align-items:start;}
.hr-rec-interview-card,.hr-rec-attachment-card{border:1px solid var(--border-color,#dfe3e8);border-radius:8px;padding:12px;margin-top:4px;background:var(--panel-subtle,#fafbfc);}
.hr-rec-interview-card h4,.hr-rec-attachment-card h4{margin:0 0 10px;font-size:14px;}
.hr-rec-file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-color,#e6e9ed);}
.hr-rec-file-row a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hr-rec-upload-line{display:grid;grid-template-columns:minmax(150px,220px) minmax(200px,1fr);gap:8px;align-items:center;margin-top:10px;}
.hr-rec-upload-line .muted{grid-column:1/-1;white-space:normal;overflow-wrap:anywhere;}
@media(max-width:760px){.hr-rec-file-row{grid-template-columns:1fr auto}.hr-rec-file-row .status-pill,.hr-rec-file-row span{grid-column:auto}.hr-rec-upload-line{grid-template-columns:1fr}.hr-rec-upload-line .muted{grid-column:1}.hr-recruit-panel .data-table-wrap{overflow-x:auto;}}
.work-plan-table tbody tr.row-complete>td.wp-work-zone,.work-plan-table tbody tr.row-complete>td.wp-status-cell{background:#cfe2f3!important;color:#17212b!important}

/* V133: 업무계획 상태색 최종 우선순위 - 완료 > 일보/필수 > 일반/교차서식 */
.work-plan-shell .work-plan-table tbody tr.row-complete>td.wp-work-zone,
.work-plan-shell .work-plan-table tbody tr.row-complete>td.wp-status-cell,
.work-plan-shell .work-plan-table tbody tr.row-complete.row-daily>td.wp-work-zone,
.work-plan-shell .work-plan-table tbody tr.row-complete.row-required>td.wp-work-zone,
.work-plan-shell .work-plan-table tbody tr.row-complete.row-daily.row-required>td.wp-work-zone{background:#cfe2f3!important;color:#17212b!important}
.work-plan-shell .work-plan-table tbody tr.row-complete>td.wp-work-zone textarea,
.work-plan-shell .work-plan-table tbody tr.row-complete>td.wp-work-zone input:not([type="checkbox"]),
.work-plan-shell .work-plan-table tbody tr.row-complete>td.wp-work-zone .wp-status-button{background:transparent!important;color:#17212b!important}

/* V133: 지원자 등록 화면 압축 및 구인이력 계층 표시 */
.modal.hr-recruitment-modal{width:min(1180px,calc(100vw - 24px))}
.modal.hr-recruitment-modal .modal-body{padding:12px 16px}
.modal.hr-recruitment-modal .hr-rec-candidate-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px;align-items:start}
.modal.hr-recruitment-modal .hr-rec-candidate-form>.form-field{gap:4px}
.modal.hr-recruitment-modal .hr-rec-candidate-form>.form-field.wide{grid-column:span 2}
.modal.hr-recruitment-modal .hr-rec-candidate-form>.hr-rec-interview-card,
.modal.hr-recruitment-modal .hr-rec-candidate-form>.hr-rec-attachment-card{grid-column:1/-1;margin-top:2px;padding:9px 10px}
.modal.hr-recruitment-modal .hr-rec-interview-card .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 9px}
.modal.hr-recruitment-modal .hr-rec-interview-card .form-field.wide{grid-column:span 2}
.hr-rec-history-list{display:grid;gap:12px}
.hr-rec-history-post{overflow:hidden;border:1px solid #dce4eb;border-radius:10px;background:#fff}
.hr-rec-history-post>header{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#eef4fa;border-bottom:1px solid #dce4eb}
.hr-rec-history-post>header>div{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hr-rec-history-post>header span,.hr-rec-history-post>header small{color:#66788a;font-size:11px}
.hr-rec-history-general,.hr-rec-history-log{display:grid}
.hr-rec-history-general>div,.hr-rec-history-log>div{display:grid;grid-template-columns:145px 110px minmax(0,1fr) 100px;gap:8px;padding:6px 10px;border-bottom:1px solid #edf1f4;font-size:11px;align-items:start}
.hr-rec-history-candidates{display:grid;gap:8px;padding:10px}
.hr-rec-history-candidate{border:1px solid #e3e8ed;border-radius:8px;overflow:hidden}
.hr-rec-history-candidate-head{display:grid;grid-template-columns:minmax(120px,.7fr) 90px minmax(0,1fr);gap:8px;align-items:center;padding:7px 10px;background:#fafbfc}
.hr-rec-history-candidate-head small{color:#697b8d}
.hr-rec-history-log .muted{display:block!important;padding:8px 10px}
.hr-salary-base-cell .salary-increase-amount,.salary-base-cell .salary-increase-amount{display:block;color:#234f7d;font-weight:800}
@media(max-width:900px){.modal.hr-recruitment-modal .hr-rec-candidate-form{grid-template-columns:repeat(2,minmax(0,1fr))}.modal.hr-recruitment-modal .hr-rec-interview-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hr-rec-history-general>div,.hr-rec-history-log>div{grid-template-columns:120px 90px minmax(0,1fr)}.hr-rec-history-general>div small,.hr-rec-history-log>div small{display:none}}
@media(max-width:760px){.modal.hr-recruitment-modal .hr-rec-candidate-form,.modal.hr-recruitment-modal .hr-rec-interview-card .form-grid{grid-template-columns:1fr}.modal.hr-recruitment-modal .hr-rec-candidate-form>.form-field.wide,.modal.hr-recruitment-modal .hr-rec-interview-card .form-field.wide{grid-column:auto}.hr-rec-history-candidate-head{grid-template-columns:1fr auto}.hr-rec-history-candidate-head small{grid-column:1/-1}.hr-rec-history-general>div,.hr-rec-history-log>div{grid-template-columns:1fr}.hr-rec-history-general>div time,.hr-rec-history-log>div time{color:#6e7e90}}

/* V136 recruitment modal readability */
.modal.hr-recruitment-modal{width:min(1180px,96vw);max-height:94vh}
.modal.hr-recruitment-modal .modal-body{padding:10px 12px 14px}
.modal.hr-recruitment-modal .hr-rec-candidate-form{display:grid;gap:9px}
.modal.hr-recruitment-modal .hr-rec-form-section{border:1px solid #d7e0e8;border-radius:9px;background:#fff;padding:9px 10px}
.modal.hr-recruitment-modal .hr-rec-section-title{display:flex;align-items:baseline;gap:8px;padding-bottom:6px;margin-bottom:7px;border-bottom:1px solid #e7edf2}
.modal.hr-recruitment-modal .hr-rec-section-title strong{font-size:13px;color:#1b3854}
.modal.hr-recruitment-modal .hr-rec-section-title span{font-size:10px;color:#748596}
.modal.hr-recruitment-modal .hr-rec-grid{display:grid;gap:6px 9px;align-items:start}
.modal.hr-recruitment-modal .hr-rec-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.modal.hr-recruitment-modal .hr-rec-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.modal.hr-recruitment-modal .hr-rec-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.modal.hr-recruitment-modal .hr-rec-grid>.form-field{gap:3px;margin:0}
.modal.hr-recruitment-modal .hr-rec-grid>.form-field.wide{grid-column:1/-1}
.modal.hr-recruitment-modal .hr-rec-grid input,.modal.hr-recruitment-modal .hr-rec-grid textarea{min-height:34px}
.modal.hr-recruitment-modal .hr-rec-grid textarea{min-height:54px;resize:vertical}
.modal.hr-recruitment-modal .hr-rec-interviews{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.modal.hr-recruitment-modal .hr-rec-interview-card{margin:0;padding:8px 9px;background:#f8fafc;border-color:#dce5ed}
.modal.hr-recruitment-modal .hr-rec-interview-card h4{margin:0 0 7px;color:#28465f;font-size:12px}
.modal.hr-recruitment-modal .hr-rec-note-section>.form-field{margin-bottom:8px}
.modal.hr-recruitment-modal .hr-rec-attachment-card{margin:0;padding:8px 9px;background:#f8fafc}
.modal.hr-recruitment-modal .hr-rec-attachment-card h4{margin:0 0 7px;font-size:12px}
.modal.hr-recruitment-modal .hr-rec-upload-line{grid-template-columns:180px minmax(260px,1fr);margin-top:7px}
@media(max-width:900px){.modal.hr-recruitment-modal .hr-rec-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.modal.hr-recruitment-modal .hr-rec-interviews{grid-template-columns:1fr}.modal.hr-recruitment-modal .hr-rec-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.modal.hr-recruitment-modal .hr-rec-grid-2,.modal.hr-recruitment-modal .hr-rec-grid-3,.modal.hr-recruitment-modal .hr-rec-grid-4{grid-template-columns:1fr}.modal.hr-recruitment-modal .hr-rec-section-title{display:block}.modal.hr-recruitment-modal .hr-rec-section-title span{display:block;margin-top:2px}.modal.hr-recruitment-modal .hr-rec-upload-line{grid-template-columns:1fr}}

/* V137 recruitment modal full-width sections and salary readability */
.modal.hr-recruitment-modal .hr-rec-candidate-form{grid-template-columns:1fr!important}
.modal.hr-recruitment-modal .hr-rec-candidate-form>.hr-rec-form-section{grid-column:1/-1;width:100%;min-width:0}
.modal.hr-recruitment-modal .hr-rec-basic-section .hr-rec-grid-3{grid-template-columns:minmax(220px,1.35fr) minmax(150px,.8fr) minmax(200px,1fr)}
.modal.hr-recruitment-modal .hr-rec-career-field{max-width:128px;justify-self:start;width:100%}
.modal.hr-recruitment-modal .hr-rec-screen-section .hr-rec-grid-2{grid-template-columns:minmax(180px,.9fr) minmax(180px,.9fr) minmax(220px,1.2fr)}
.modal.hr-recruitment-modal .hr-rec-grid input,.modal.hr-recruitment-modal .hr-rec-grid textarea,.modal.hr-recruitment-modal .hr-rec-grid .custom-select{width:100%;min-width:0}
.modal.hr-recruitment-modal #recPrevSalary,.modal.hr-recruitment-modal #recDesiredSalary,.modal.hr-recruitment-modal #recNegotiated{text-align:right;font-variant-numeric:tabular-nums}
.hr-recruit-panel .data-table td.number-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:900px){.modal.hr-recruitment-modal .hr-rec-basic-section .hr-rec-grid-3,.modal.hr-recruitment-modal .hr-rec-screen-section .hr-rec-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.modal.hr-recruitment-modal .hr-rec-basic-section .hr-rec-grid-3,.modal.hr-recruitment-modal .hr-rec-screen-section .hr-rec-grid-2{grid-template-columns:1fr}}
.wp-autosave-state{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:30px;padding:0 9px;border-radius:7px;border:1px solid #d5dde5;background:#f8fafc;font-size:12px;font-weight:800;white-space:nowrap;color:#526173}.wp-autosave-state.is-saved{border-color:#b9dfc5;background:#eef8f1;color:#23723c}.wp-autosave-state.is-pending{border-color:#edd59d;background:#fff8e8;color:#8a5a00}.wp-autosave-state.is-saving{border-color:#bed5eb;background:#eff6fc;color:#235f91}.wp-autosave-state.is-error{border-color:#efb4b4;background:#fff0f0;color:#a92a2a}.wp-blocking-warning-modal{max-width:520px}.wp-blocking-warning{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:8px 2px}.wp-blocking-warning-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#fff0f0;color:#b42318;font-size:24px;font-weight:900}.wp-blocking-warning strong{display:block;margin-bottom:7px;font-size:16px;color:#172033}.wp-blocking-warning p{margin:0;line-height:1.65;color:#3d4a5d;word-break:keep-all}
/* V141 업무리스트/이력 시인성 */
.wp-task-tools{min-height:46px;padding:6px 10px}
.wp-task-items{padding:6px 10px}
.wp-task-row{grid-template-columns:52px 66px 104px 112px minmax(210px,1fr) minmax(320px,1.55fr) 84px 84px 52px;margin-bottom:3px;border-radius:5px}
.wp-task-row>div{padding:4px 6px;align-items:center}
.wp-task-row .wp-task-wrap{align-items:center}
.wp-task-row.is-selected{border-color:#5d8fbe;background:#eaf3fb;box-shadow:inset 4px 0 0 #2e6bb2}
.wp-task-plan{min-width:44px;min-height:18px;padding:0 5px;font-size:11px;opacity:.9}
.wp-task-plan.plan-fixed{background:#8b5a2b;color:#fff}
.wp-task-category{filter:saturate(.72) brightness(1.06)}
.wp-task-row .wp-task-action input{width:20px;height:20px}
.wp-history-filterbar{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr)) auto;gap:7px;align-items:end;padding:8px 9px;margin-bottom:7px;border:1px solid #d5dee6;border-radius:8px;background:#f7f9fb}
.wp-history-filterbar label,.wp-history-filter-field{display:grid;gap:3px;font-size:11px;font-weight:800;color:#52616d}
.wp-history-filterbar input{min-width:0;height:30px;padding:0 7px;border:1px solid #c8d2dc;border-radius:6px;background:#fff}.wp-history-filter-field .custom-select-display{min-height:30px;height:30px;padding:0 8px;font-size:12px}
.work-plan-table.history-mode{table-layout:fixed;min-width:1100px}
.work-plan-table.history-mode .h-date{width:8%}.work-plan-table.history-mode .h-plan{width:7%}.work-plan-table.history-mode .h-category{width:9%}.work-plan-table.history-mode .h-company{width:11%}.work-plan-table.history-mode .h-task{width:15%}.work-plan-table.history-mode .h-content{width:25%}.work-plan-table.history-mode .h-hours{width:7%}.work-plan-table.history-mode .h-status{width:8%}.work-plan-table.history-mode .h-memo{width:14%}.work-plan-table.history-mode .h-attachment{width:5%}
.work-plan-table.history-mode td{vertical-align:top;white-space:normal;word-break:break-word;line-height:1.35;padding:5px 6px}
.work-plan-table.history-mode .wp-history-merge,.work-history-table .wp-history-merge{vertical-align:top;font-weight:700;background:#f8fafc}
.work-plan-table.history-mode .history-content,.work-plan-table.history-mode .history-memo{white-space:pre-wrap}
@media(max-width:1100px){.wp-history-filterbar{grid-template-columns:repeat(3,minmax(120px,1fr))}.wp-history-filterbar .secondary-button{grid-column:span 3}}
/* V141 지원자 엑셀/문자 */
.hr-recruitment-import-modal{width:min(1180px,96vw)!important}
.hr-rec-import{display:grid;gap:12px}.hr-rec-import-top{display:grid;grid-template-columns:2fr 1fr .7fr 1.3fr;gap:10px}.hr-rec-import-map{max-height:48vh;overflow:auto;border:1px solid #d5dee6;border-radius:8px}.hr-rec-import-map table{margin:0}.hr-rec-import-map select{width:100%;min-height:32px;border:1px solid #c7d1da;border-radius:6px;background:#fff}.hr-rec-import-profile{display:grid;grid-template-columns:minmax(180px,320px) auto 1fr;gap:8px;align-items:center}.hr-rec-import-profile input{height:34px;border:1px solid #c7d1da;border-radius:6px;padding:0 8px}.hr-rec-message-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hr-rec-message-form .wide{grid-column:1/-1}.hr-rec-message-form textarea{min-height:260px;white-space:pre-wrap}
@media(max-width:900px){.hr-rec-import-top{grid-template-columns:1fr 1fr}.hr-rec-import-profile{grid-template-columns:1fr}.hr-rec-message-form{grid-template-columns:1fr}}
/* V142 recruitment history/message readability */
.hr-rec-history-toolbar{display:grid;grid-template-columns:minmax(280px,1.6fr) minmax(180px,.8fr) 180px 180px auto;gap:8px;align-items:end;margin:10px 0}.hr-rec-history-toolbar>input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:8px 10px}.hr-rec-history-toolbar>.custom-select{min-width:0}.hr-rec-history-toolbar label{display:grid;gap:4px;font-size:11px;color:#5e7185}.hr-rec-history-toolbar label input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #d4dde5;border-radius:8px;padding:7px 9px}.hr-rec-history-toolbar .secondary-button{min-height:38px}.hr-rec-message-history{display:grid;gap:8px;max-height:320px;overflow:auto}.hr-rec-message-history>div{display:grid;grid-template-columns:145px 150px 110px minmax(120px,.7fr);gap:6px 10px;padding:9px 10px;border:1px solid #e1e7ed;border-radius:8px;background:#fff}.hr-rec-message-history p{grid-column:1/-1;margin:0;white-space:pre-wrap;line-height:1.55;color:#334155}.hr-rec-message-history em{grid-column:1/-1;color:#b42318;font-style:normal}.hr-rec-message-history time,.hr-rec-message-history small{color:#66788a}.hr-rec-message-history-section{grid-column:1/-1}
@media(max-width:980px){.hr-rec-history-toolbar{grid-template-columns:1fr 1fr}.hr-rec-history-toolbar>.hr-rec-q{grid-column:1/-1}.hr-rec-message-history>div{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.hr-rec-history-toolbar{grid-template-columns:1fr}.hr-rec-history-toolbar>.hr-rec-q{grid-column:auto}.hr-rec-message-history>div{grid-template-columns:1fr}}
/* V144 recruitment lifetime history / candidate filters */
.modal.hr-recruitment-modal .hr-rec-basic-section .hr-rec-career-field{max-width:128px;justify-self:stretch;width:100%}
.hr-rec-candidate-toolbar #hrRecPostStatusFilter .custom-select,.hr-rec-candidate-toolbar #hrRecPostFilter .custom-select,.hr-rec-candidate-toolbar #hrRecCandidateStatus .custom-select{min-width:180px}
.hr-rec-candidate-table th:nth-child(4),.hr-rec-candidate-table td:nth-child(4){width:70px;white-space:nowrap}
.hr-rec-candidate-table th:nth-child(6),.hr-rec-candidate-table td:nth-child(6){width:78px;white-space:nowrap;text-align:center}
.hr-rec-application-history{display:grid;gap:6px}
.hr-rec-application-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(100px,.8fr) minmax(90px,.7fr) minmax(80px,.6fr) minmax(80px,.6fr) minmax(90px,.7fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid #e1e8ef;border-radius:8px;background:#fff;font-size:12px}
.hr-rec-application-row.current{background:#f3f8fd;border-color:#b9d0e7}
.hr-rec-application-row em{font-style:normal;font-weight:800;color:#1d5e99;white-space:nowrap}
@media(max-width:900px){.hr-rec-application-row{grid-template-columns:1fr 1fr}.hr-rec-application-row em{grid-column:1/-1}}



/* V145: 업무이력 좌측 필터/테이블 시인성 통일 */
.work-history-controls{position:static;overflow-y:auto;overflow-x:visible}
.work-history-controls .work-history-filters{position:static;display:grid;width:auto;max-height:none;margin:0;padding:0;gap:7px;overflow:visible;border:0;border-radius:0;color:#eaf3fa;background:transparent;box-shadow:none}
.work-history-controls .work-history-filters label,.work-history-main-search{display:grid;gap:5px;color:#eaf3fa;font-size:11px}
.work-history-controls .work-history-filters input,.work-history-controls .work-history-filters .custom-select-display,.work-history-main-search input{width:100%;min-height:34px;border:0;border-radius:6px;padding:0 8px;background:#fff;color:#172b3d}
.work-history-controls .wh-reset,.work-history-controls .wh-search{width:100%;min-height:34px}
.work-history-summary{grid-template-columns:1fr 1fr;gap:6px;margin:0}
.work-history-summary article{padding:8px;border:0;border-radius:7px;background:rgba(255,255,255,.10);color:#fff}
.work-history-summary span{margin-bottom:2px;color:#d9e6f1;font-size:10px}.work-history-summary strong{font-size:18px}
.work-history-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}
.work-history-main-toolbar{flex:0 0 auto;min-height:40px;padding:7px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.work-history-table-wrap{flex:1;min-height:0;overflow:auto}
.work-history-table{width:100%;min-width:0;table-layout:fixed}
.work-history-table .wh-col-date{width:7.5%}.work-history-table .wh-col-category{width:7%}.work-history-table .wh-col-owner{width:6.5%}.work-history-table .wh-col-company{width:9%}.work-history-table .wh-col-task{width:14%}.work-history-table .wh-col-content{width:23%}.work-history-table .wh-col-hours{width:5%}.work-history-table .wh-col-status{width:6%}.work-history-table .wh-col-memo{width:17%}.work-history-table .wh-col-attach{width:5%}
.work-history-table th,.work-history-table td{min-width:0;padding:5px 6px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:keep-all;line-height:1.35}
.work-history-table thead th{position:sticky;top:0;z-index:3;background:#eaf0f6;text-align:center;font-size:11px}
.work-history-table tbody td{font-size:11px}.work-history-table tbody tr:hover td{background:#f5f9fc}
.work-history-table td.history-content,.work-history-table td.history-memo{max-width:none;white-space:pre-wrap;text-align:left}
.work-history-table .wp-history-merge{vertical-align:top!important;padding-top:6px;font-weight:700;background:#f8fafc}
.work-history-table .wp-history-merge.left{text-align:left}
.work-history-table .table-button{padding:4px 7px;min-height:28px}
@media(max-width:1100px){.work-history-table{min-width:1040px}}

.rq-ppurio-grid{grid-template-columns:minmax(170px,1fr) minmax(220px,1.4fr) minmax(260px,1.2fr) minmax(180px,.8fr);align-items:start}.rq-ppurio-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.rq-ppurio-enabled-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;margin:0;cursor:pointer}.rq-ppurio-enabled-button input{width:16px;height:16px;margin:0;accent-color:currentColor}.rq-ppurio-senders-wrap{display:flex;flex-direction:column;gap:7px;align-self:start}.rq-ppurio-senders-wrap>span{font-size:12px;font-weight:700;color:#31475e}.rq-ppurio-sender-editor{display:flex;flex-direction:column;gap:6px;width:100%}.rq-ppurio-sender-row{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(150px,1.2fr) auto;gap:6px;align-items:center;width:100%}.rq-ppurio-sender-row input{width:100%;height:40px}.rq-ppurio-sender-row .danger-outline{height:40px;padding:0 12px}.rq-ppurio-sender-add{min-height:36px}@media(max-width:900px){.rq-ppurio-grid{grid-template-columns:1fr}.rq-ppurio-actions{justify-content:flex-start}}


.hr-rec-final-status-line{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:10px;align-items:center}.hr-rec-auto-status{min-height:40px;display:flex;align-items:center;padding:0 12px;border:1px solid #cbd7e6;border-radius:8px;background:#f3f6fa;font-weight:700;color:#17385d}.hr-rec-no-show{display:flex;align-items:center;gap:6px;min-height:40px;padding:0 10px;border:1px solid #d3dce8;border-radius:8px;background:#fff;font-weight:700;white-space:nowrap}.hr-rec-no-show input{width:18px;height:18px}.hr-rec-no-show:has(input:disabled){opacity:.5;background:#f5f6f8}.hr-rec-interview-card:has(input:disabled) textarea,.hr-rec-interview-card input:disabled{background:#f3f5f7;color:#8a96a5}.custom-select.is-disabled .custom-select-display{background:#f3f5f7;color:#8a96a5;cursor:not-allowed}


/* V149: 업무계획 이력과 업무이력 시각 규칙 통일 */
.work-history-main{background:#eef3f8}
.work-history-main-toolbar{min-height:40px;padding:0;border:0;background:transparent;margin-bottom:8px}
.work-history-controls .work-history-filters{gap:7px}
.work-history-controls .work-history-filters label,.work-history-main-search{font-size:11px;font-weight:800}
.work-history-controls .work-history-filters input,.work-history-controls .work-history-filters .custom-select-display,.work-history-main-search input{min-height:34px;height:34px;font-size:12px}
.work-history-controls .wh-reset,.work-history-controls .wh-search{min-height:34px;border-radius:6px;font-size:12px;font-weight:800}
.work-history-table{width:100%;min-width:1100px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.work-history-table .wh-col-date{width:8%}.work-history-table .wh-col-category{width:8%}.work-history-table .wh-col-owner{width:7%}.work-history-table .wh-col-company{width:10%}.work-history-table .wh-col-task{width:14%}.work-history-table .wh-col-content{width:23%}.work-history-table .wh-col-hours{width:7%}.work-history-table .wh-col-status{width:8%}.work-history-table .wh-col-memo{width:10%}.work-history-table .wh-col-attach{width:5%}
.work-history-table th,.work-history-table td{padding:5px 6px;font-size:13px;line-height:1.35;vertical-align:top;white-space:normal;word-break:break-word;overflow-wrap:anywhere;border-right:1px solid #e5eaef;border-bottom:1px solid #e5eaef}
.work-history-table th:first-child,.work-history-table td:first-child{border-left:1px solid #e5eaef}
.work-history-table thead th{height:30px;padding:3px 5px;border-top:0;background:#e9eef3;color:#374a5a;font-size:13px;font-weight:900;text-align:center;white-space:nowrap}
.work-history-table tbody td{font-size:13px;background:#fff}
.work-history-table tbody tr:hover td{background:#f8fbff}
.work-history-table .wp-history-merge{vertical-align:top!important;padding-top:6px;font-weight:700;background:#f8fafc}
.work-history-table td.history-content,.work-history-table td.history-memo{white-space:pre-wrap;text-align:left}
.work-history-table .table-button{min-height:22px;padding:2px 7px;font-size:12px}

/* V150: 업무이력 상단필터 / 분석 시안성 / 문자 템플릿 관리 */
.v150-work-history{display:flex;flex-direction:column;gap:8px;background:#eef3f8;min-width:0}
.v150-work-history .work-history-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:transparent}
.work-history-filterbar{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr)) minmax(220px,1.5fr) auto auto auto;gap:7px;align-items:end;padding:8px 10px;border:1px solid #dbe4ec;border-radius:9px;background:#fff}
.work-history-filterbar label{display:grid;gap:4px;min-width:0;color:#405569;font-size:11px;font-weight:800}
.work-history-filterbar input,.work-history-filterbar .custom-select-display{width:100%;height:34px;min-height:34px;border:1px solid #ccd7e2;border-radius:6px;background:#fff;font-size:12px}
.work-history-filterbar button{height:34px;min-height:34px;white-space:nowrap}
.v150-work-history .work-history-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:7px;margin:0 10px 8px}
.v150-work-history .work-history-summary article{padding:8px 10px;border:1px solid #dbe4ec;border-radius:8px;background:#fff;color:#23384b}
.v150-work-history .work-history-summary span{color:#6b7c8d}.v150-work-history .work-history-summary strong{color:#163d64}
@media(max-width:1450px){.work-history-filterbar{grid-template-columns:repeat(4,minmax(130px,1fr));}.work-history-filterbar .work-history-main-search{grid-column:span 2}}
@media(max-width:900px){.work-history-filterbar{grid-template-columns:1fr 1fr}.work-history-filterbar .work-history-main-search{grid-column:1/-1}.v150-work-history .work-history-summary{grid-template-columns:1fr 1fr}}

.v150-analysis{display:flex;flex-direction:column;gap:9px;min-width:0;background:#eef3f8;padding:8px}
.v150-analysis .work-analysis-filterbar{display:grid;grid-template-columns:150px 150px minmax(180px,1fr) auto auto;gap:8px;align-items:end;padding:10px;border:1px solid #dbe4ec;border-radius:9px;background:#fff}
.v150-analysis .work-analysis-filterbar label{display:grid;gap:4px;color:#405569;font-size:11px;font-weight:800}.v150-analysis .work-analysis-filterbar input,.v150-analysis .work-analysis-filterbar .custom-select-display{height:35px;min-height:35px}
.v150-analysis .work-analysis-kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}.v150-analysis .work-analysis-kpis article{padding:10px 12px;border:1px solid #dbe4ec;border-radius:9px;background:#fff}.v150-analysis .work-analysis-kpis span{display:block;color:#6a7c8d;font-size:11px;font-weight:800}.v150-analysis .work-analysis-kpis strong{display:block;margin-top:3px;color:#173c60;font-size:20px}
.v150-analysis .work-analysis-tabs{display:flex;gap:6px;padding:5px;border:1px solid #dbe4ec;border-radius:9px;background:#fff}.v150-analysis .work-analysis-tabs button{min-width:130px}.v150-analysis .work-analysis-tabs button.active{background:#173f67;color:#fff;border-color:#173f67}
.v150-analysis .work-analysis-guide{padding:8px 10px;border:1px solid #dbe4ec;border-radius:8px;background:#f8fbfe;color:#5d7083;font-size:12px}
.v150-analysis .work-analysis-table-wrap{border:1px solid #dbe4ec;border-radius:9px;background:#fff;overflow:auto}.v150-analysis .work-analysis-table{min-width:1120px}.v150-analysis .work-analysis-table thead th{position:sticky;top:0;z-index:2;background:#e9eef3;font-size:12px;font-weight:900}.v150-analysis .work-analysis-table td{font-size:12px;vertical-align:top}.v150-analysis .salary-month-hint{display:block;margin-top:3px;color:#718194;font-size:10px;white-space:normal}.v150-analysis tr.salary-warn td{background:#fffdf5}.v150-analysis tr.salary-error td{background:#fff8f7}
@media(max-width:900px){.v150-analysis .work-analysis-filterbar{grid-template-columns:1fr 1fr}.v150-analysis .work-analysis-kpis{grid-template-columns:1fr 1fr}}

.hr-rec-template-manager .hr-rec-template-head{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:8px;align-items:end}.hr-rec-template-manager .danger-button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:720px){.hr-rec-template-manager .hr-rec-template-head{grid-template-columns:1fr 1fr}.hr-rec-template-manager .hr-rec-template-head .form-field{grid-column:1/-1}}
.v150-analysis .work-analysis-summary-cards{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}.v150-analysis .work-analysis-summary-cards article{padding:10px 12px;border:1px solid #dbe4ec;border-radius:9px;background:#fff}.v150-analysis .work-analysis-summary-cards span{display:block;color:#6a7c8d;font-size:11px;font-weight:800}.v150-analysis .work-analysis-summary-cards strong{display:block;margin-top:3px;color:#173c60;font-size:20px}.v150-analysis .work-analysis-main{display:grid;gap:8px;min-width:0}.v150-analysis .work-analysis-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px}.v150-analysis .work-analysis-tabs button.is-active{background:#173f67;color:#fff;border-color:#173f67}.v150-analysis .work-analysis-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}.v150-analysis .work-analysis-sort{display:flex;gap:5px}.v150-analysis .work-analysis-sort button.is-active{background:#245d96;color:#fff;border-color:#245d96}

/* V151 - work history layout aligned with work-plan history */
.v151-work-history{grid-template-columns:238px minmax(0,1fr);height:100%;min-height:0;background:#eef3f8}
.v151-work-history .work-history-controls{min-height:0;overflow-y:auto;background:#143958;color:#fff;padding:12px;display:flex;flex-direction:column;gap:12px}
.v151-work-history .work-side-heading{padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.18);display:grid;gap:5px}
.v151-work-history .work-side-heading strong{font-size:13px;color:#fff}
.v151-work-history .work-side-heading span{font-size:11px;line-height:1.45;color:#d9e6f1}
.v151-work-history .work-history-main-search{display:grid;gap:5px;color:#eaf3fa;font-size:11px;font-weight:800}
.v151-work-history .work-history-main-search input{width:100%;height:36px;min-height:36px;border:0;border-radius:6px;padding:0 9px;background:#fff;color:#172b3d;font-size:12px}
.v151-work-history .work-history-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0}
.v151-work-history .work-history-summary article{min-width:0;border:0;border-radius:7px;padding:9px;background:rgba(255,255,255,.1)}
.v151-work-history .work-history-summary span{display:block;margin-bottom:4px;color:#d6e6f2;font-size:10px}
.v151-work-history .work-history-summary strong{color:#fff;font-size:18px}
.v151-work-history .work-history-main{min-width:0;min-height:0;overflow:hidden;padding:8px 10px 6px;display:flex;flex-direction:column;background:#eef3f8}
.v151-work-history .work-history-filterbar{flex:0 0 auto;display:grid;grid-template-columns:repeat(6,minmax(108px,1fr)) auto auto auto;gap:6px;align-items:end;margin:0 0 7px;padding:0;background:transparent;border:0}
.v151-work-history .work-history-filterbar label{display:grid;gap:3px;min-width:0;color:#41586d;font-size:10px;font-weight:800}
.v151-work-history .work-history-filterbar input,.v151-work-history .work-history-filterbar .custom-select-display{width:100%;height:32px;min-height:32px;border:1px solid #cfd9e5;border-radius:6px;padding:0 8px;background:#fff;color:#172b3d;font-size:11px}
.v151-work-history .work-history-filterbar button{height:32px;min-height:32px;padding:0 13px;border-radius:6px;font-size:11px;font-weight:800;white-space:nowrap}
.v151-work-history .work-history-table-wrap{flex:1 1 auto;min-height:0;height:auto;max-height:none;overflow:auto;background:#fff;border:1px solid #dbe4ed;border-radius:6px 6px 0 0}
.v151-work-history .work-history-main .panel-footer{flex:0 0 31px;min-height:31px;padding:4px 2px 0;display:flex;align-items:center;gap:8px;background:#eef3f8}
.v151-work-history .work-history-main .panel-footer .wh-more{min-height:28px;height:28px;padding:0 12px}
@media(max-width:1200px){.v151-work-history .work-history-filterbar{grid-template-columns:repeat(3,minmax(150px,1fr)) repeat(3,auto)}}
@media(max-width:900px){.v151-work-history{grid-template-columns:1fr;height:auto}.v151-work-history .work-history-controls{overflow:visible}.v151-work-history .work-history-main{min-height:70vh;overflow:visible}.v151-work-history .work-history-filterbar{grid-template-columns:repeat(2,minmax(150px,1fr))}.v151-work-history .work-history-table-wrap{height:70vh;max-height:70vh}}

/* V152: 업무이력 분석 좌측 작업바 / 귀속연월 조회 */
.v152-analysis{display:grid!important;grid-template-columns:238px minmax(0,1fr)!important;gap:0!important;padding:0!important;height:100%;min-height:0;background:#eef3f8}
.v152-analysis-controls{background:#143958;color:#fff;padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}
.v152-analysis-controls .work-control-title{display:grid;gap:3px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.18)}
.v152-analysis-controls .work-control-title strong{font-size:13px;color:#fff}.v152-analysis-controls .work-control-title small{font-size:10px;line-height:1.35;color:#cfe0ee}
.v152-analysis-controls .work-analysis-filter-stack{display:grid;gap:9px}.v152-analysis-controls .work-analysis-filter-stack label{display:grid;gap:4px;color:#eaf3fa;font-size:11px;font-weight:800}
.v152-analysis-controls input{width:100%;height:36px;min-height:36px;border:0;border-radius:6px;padding:0 9px;background:#fff;color:#172b3d}
.v152-analysis-controls .custom-select-display{min-height:36px;background:#fff;color:#172b3d}
.v152-analysis-controls .work-analysis-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.v152-analysis-controls .work-analysis-filter-actions button{width:100%;min-height:36px}
.v152-analysis-controls .work-analysis-status-title,.v152-analysis-controls .work-analysis-tab-title{margin-top:2px}
.v152-analysis-controls .work-analysis-side-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.v152-analysis-controls .work-analysis-side-summary article{padding:9px;border-radius:7px;background:rgba(255,255,255,.1)}
.v152-analysis-controls .work-analysis-side-summary span{display:block;color:#d6e6f2;font-size:10px;margin-bottom:4px}.v152-analysis-controls .work-analysis-side-summary strong{font-size:18px;color:#fff}
.v152-analysis-controls .work-analysis-side-tabs{display:grid;grid-template-columns:1fr;gap:6px;padding:0;border:0;background:transparent}.v152-analysis-controls .work-analysis-side-tabs button{width:100%;min-height:38px;text-align:left;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#eaf3fa}.v152-analysis-controls .work-analysis-side-tabs button.is-active{background:#fff;color:#173f67;border-color:#fff}
.v152-analysis-main{padding:8px!important;display:flex!important;flex-direction:column!important;gap:8px;overflow:hidden!important;min-width:0;min-height:0}
.v152-analysis-main .work-analysis-guide{flex:0 0 auto;padding:8px 10px}.v152-analysis-main .wha-content{flex:1;min-height:0;overflow:auto}
.v152-analysis-main .work-analysis-section{display:flex;flex-direction:column;min-height:0;gap:7px}.v152-analysis-main .work-analysis-section>h3{margin:0;font-size:14px}
.v152-analysis-main .work-analysis-table{min-width:1060px}.v152-analysis-main .v152-analysis-summary{min-width:1120px}
@media(max-width:900px){.v152-analysis{grid-template-columns:1fr!important;height:auto}.v152-analysis-controls{overflow:visible}.v152-analysis-main{min-height:65vh;overflow:visible!important}.v152-analysis-main .wha-content{overflow:auto}}

/* V153: 업무이력 분석 3개 독립 탭 / 단일 데이터테이블 가독성 */
.v153-analysis-main{padding:8px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;min-width:0;min-height:0}
.v153-analysis-main .wha-content{flex:1 1 auto;min-height:0;overflow:hidden}
.v153-analysis-main .v153-analysis-section{height:100%;min-height:0;display:flex;flex-direction:column;gap:7px}
.v153-analysis-main .work-analysis-section-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 10px;border:1px solid #d5e0ea;border-radius:8px;background:#f8fafc}
.v153-analysis-main .work-analysis-section-head h3{margin:0;color:#17385f;font-size:14px;font-weight:900}
.v153-analysis-main .work-analysis-section-head small{display:block;margin-top:2px;color:#718194;font-size:10px;line-height:1.3}
.v153-analysis-main .v153-analysis-table-wrap{flex:1 1 auto;min-height:0;height:auto;max-height:none;overflow:auto;border:1px solid #cfdbe6;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(23,56,95,.04)}
.v153-analysis-main .v153-analysis-table{width:100%;min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.v153-analysis-main .v153-analysis-table thead th{position:sticky;top:0;z-index:3;height:36px;padding:7px 8px;background:#dfe8f1;color:#17385f;border-bottom:1px solid #bdccd9;font-size:11px;font-weight:900;text-align:center;white-space:nowrap}
.v153-analysis-main .v153-analysis-table tbody td{height:34px;padding:7px 8px;border-bottom:1px solid #e2e8ef;border-right:1px solid #edf1f5;background:#fff;color:#253746;font-size:11px;line-height:1.35;vertical-align:middle;overflow-wrap:anywhere}
.v153-analysis-main .v153-analysis-table tbody tr:nth-child(even) td{background:#f8fafc}
.v153-analysis-main .v153-analysis-table tbody tr:hover td{background:#eef5fb}
.v153-analysis-main .v153-analysis-table td.key{color:#172b3d;font-weight:700}
.v153-analysis-main .v153-analysis-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.v153-analysis-main .v153-analysis-table td.money{font-size:10.5px}
.v153-analysis-main .v153-analysis-table td.emphasis{color:#173f67;font-weight:900}
.v153-analysis-main .v153-analysis-table .empty-row{text-align:center!important;color:#718194!important;padding:28px!important}
.v153-analysis-main .v153-employee-summary .c-owner{width:8%}.v153-analysis-main .v153-employee-summary .c-no{width:10%}.v153-analysis-main .v153-employee-summary .c-days{width:7%}.v153-analysis-main .v153-employee-summary .c-hours{width:8%}.v153-analysis-main .v153-employee-summary .c-load{width:7%}.v153-analysis-main .v153-employee-summary .c-type{width:7%}.v153-analysis-main .v153-employee-summary .c-weekend{width:7%}.v153-analysis-main .v153-employee-summary .c-cost{width:11%}
.v153-analysis-main .v153-employee-detail .c-owner{width:10%}.v153-analysis-main .v153-employee-detail .c-company{width:17%}.v153-analysis-main .v153-employee-detail .c-category{width:13%}.v153-analysis-main .v153-employee-detail .c-task{width:34%}.v153-analysis-main .v153-employee-detail .c-count{width:8%}.v153-analysis-main .v153-employee-detail .c-hours{width:10%}
.v153-analysis-main .v153-fixed-table .c-category{width:8%}.v153-analysis-main .v153-fixed-table .c-company{width:11%}.v153-analysis-main .v153-fixed-table .c-task{width:22%}.v153-analysis-main .v153-fixed-table .c-owner{width:9%}.v153-analysis-main .v153-fixed-table .c-count{width:7%}.v153-analysis-main .v153-fixed-table .c-hours{width:7%}.v153-analysis-main .v153-fixed-table .c-load{width:7%}.v153-analysis-main .v153-fixed-table .c-weekend{width:7%}.v153-analysis-main .v153-fixed-table .c-cost{width:9%}
.v152-analysis-controls .work-analysis-side-tabs button{padding:0 10px;font-size:11px}
@media(max-width:900px){.v153-analysis-main{min-height:65vh;overflow:visible!important}.v153-analysis-main .wha-content{overflow:auto}.v153-analysis-main .v153-analysis-section{height:auto}.v153-analysis-main .v153-analysis-table-wrap{max-height:65vh}}

/* V154: 지원자 엑셀 유연 매핑 / 변환 미리보기 */
.hr-rec-import-top{grid-template-columns:minmax(220px,1.5fr) minmax(120px,.8fr) minmax(90px,.55fr) minmax(170px,1.1fr) minmax(150px,1fr)}
.hr-rec-import-profile-status{padding:8px 10px;border:1px solid #d6e0ea;border-radius:8px;background:#f6f9fc}
.hr-rec-import-map th:nth-child(1){width:42px}.hr-rec-import-map th:nth-child(2){width:18%}.hr-rec-import-map th:nth-child(3){width:24%}.hr-rec-import-map th:nth-child(4){width:18%}.hr-rec-import-map th:nth-child(5){width:auto}
.hr-rec-import-preview{display:grid;gap:6px}.hr-rec-import-preview-title{font-weight:800;color:#163a5a}.hr-rec-import-preview .data-table-wrap{max-height:190px;border:1px solid #d5dee6;border-radius:8px}.hr-rec-import-preview .data-table{margin:0}
@media(max-width:1100px){.hr-rec-import-top{grid-template-columns:1fr 1fr}.hr-rec-import-top .form-field:first-child{grid-column:1/-1}}

.v153-fixed-table td.merged-cell{vertical-align:top;background:#f7f9fc;font-weight:700}.v153-fixed-table tbody tr:hover td.merged-cell{background:#edf3f9}
.home-release-panel{margin-top:14px}.home-release-panel .panel-header{align-items:flex-start}.home-release-count{flex:0 0 auto;padding:5px 9px;border:1px solid #cbd9e6;border-radius:999px;background:#f5f8fb;color:#44566c;font-size:12px;font-weight:800}.home-release-list{display:grid;border-top:1px solid #d8e1ea}.home-release-note{border-bottom:1px solid #d8e1ea;background:#fff}.home-release-note summary{display:grid;grid-template-columns:78px 110px minmax(0,1fr);align-items:center;gap:10px;min-height:42px;padding:7px 10px;cursor:pointer;list-style:none}.home-release-note summary::-webkit-details-marker{display:none}.home-release-note summary:hover{background:#f6f9fc}.home-release-note[open] summary{background:#eef5fb}.home-release-version{font-size:13px;font-weight:900;color:#153b60}.home-release-date{font-size:12px;color:#65758b}.home-release-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;color:#27384b}.home-release-detail{display:grid;gap:5px;padding:9px 12px 12px 100px;background:#fbfdff}.home-release-item{position:relative;padding-left:12px;color:#34465a;font-size:12px;line-height:1.55}.home-release-item:before{content:'•';position:absolute;left:0;color:#2c6ca3}.home-release-more-wrap{display:flex;justify-content:center;padding-top:12px}@media(max-width:760px){.home-release-note summary{grid-template-columns:64px 90px minmax(0,1fr);gap:7px;padding:7px 8px}.home-release-detail{padding-left:12px}.home-release-summary{font-size:12px}}

/* V159 mobile card layouts: status views, work management, work plan */
@media(max-width:760px){
  .mobile-card-table{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  .mobile-card-table colgroup,.mobile-card-table thead{display:none!important}
  .mobile-card-table tbody{display:grid!important;gap:10px!important;width:100%!important}
  .mobile-card-table tbody tr{display:block!important;width:100%!important;border:1px solid #cfdbe7!important;border-radius:10px!important;background:#fff!important;box-shadow:0 1px 2px rgba(23,43,64,.05)!important;overflow:hidden!important;height:auto!important}
  .mobile-card-table tbody tr.empty-row,.mobile-card-table tbody tr:has(.empty-row){border:0!important;box-shadow:none!important}
  .mobile-card-table tbody td{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:8px!important;align-items:start!important;width:auto!important;min-width:0!important;height:auto!important;min-height:34px!important;padding:7px 10px!important;border:0!important;border-bottom:1px solid #edf1f5!important;white-space:normal!important;text-align:left!important;overflow:visible!important}
  .mobile-card-table tbody td:last-child{border-bottom:0!important}
  .mobile-card-table tbody td::before{content:attr(data-label);font-size:11px;font-weight:800;color:#64748b;line-height:1.4}
  .mobile-card-table tbody td.empty-row{display:block!important;text-align:center!important;padding:18px 10px!important}
  .mobile-card-table tbody td.empty-row::before{display:none}
  .mobile-card-table tbody td[rowspan]{grid-row:auto!important}
  .mobile-card-table textarea,.mobile-card-table input:not([type="checkbox"]),.mobile-card-table .wp-status-button{width:100%!important;max-width:none!important}
  .work-manage-table-wrap,.work-plan-table-wrap,.data-table-wrap{overflow:visible!important;max-height:none!important;height:auto!important}
  .work-manage-main,.work-plan-main{overflow:visible!important}

  .work-status-shell{display:block!important;height:auto!important;background:#eef3f8}
  .work-status-controls{position:static!important}
  .work-status-main{min-height:0!important;overflow:visible!important}
  .ws-data-viewport{max-height:none!important;overflow:visible!important;padding:8px!important}
  .work-status-list{display:grid!important;gap:10px!important}
  .work-status-list>.ws-table-head{display:none!important}
  .ws-record-wrap{display:block!important;border:1px solid #cfdbe7!important;border-radius:10px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 1px 2px rgba(23,43,64,.05)!important}
  .ws-record-row{display:block!important;width:100%!important;min-width:0!important;font-size:13px!important}
  .ws-record-row>div{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:8px!important;align-items:start!important;min-height:34px!important;padding:7px 10px!important;border:0!important;border-bottom:1px solid #edf1f5!important;white-space:normal!important;text-align:left!important;overflow:visible!important}
  .ws-record-row>div:last-child{border-bottom:0!important}
  .ws-record-row>div::before{font-size:11px;font-weight:800;color:#64748b;line-height:1.4}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(1)::before{content:'담당자'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(2)::before{content:'분류'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(3)::before{content:'계획'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(4)::before{content:'현황'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(5)::before{content:'마감일'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(6)::before{content:'작업내용'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(7)::before{content:'적요'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(8)::before{content:'시작일'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(9)::before{content:'작업일수'}
  .work-status-shell:not(.is-weekly) .ws-record-row>div:nth-child(10)::before{content:'누적시간'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(1)::before{content:'업체명'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(2)::before{content:'업무명'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(3)::before{content:'담당자'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(4)::before{content:'분류'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(5)::before{content:'계획'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(6)::before{content:'현황'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(7)::before{content:'작업내용'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(8)::before{content:'적요'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(9)::before{content:'시작일'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(10)::before{content:'작업일수'}
  .work-status-shell.is-weekly .ws-record-row>div:nth-child(11)::before{content:'누적시간'}
  .ws-merge-continuation{display:none!important}
  .ws-history-panel{border-top:1px solid #d8e3ed!important}
}

/* V160 recruitment inline workflow */
.hr-rec-candidate-table .hr-rec-check-col{width:38px;min-width:38px;text-align:center;padding-left:6px;padding-right:6px}
.hr-rec-candidate-table .hr-rec-check-col input{width:18px;height:18px;margin:0;vertical-align:middle}
.hr-rec-candidate-table tbody tr.hr-rec-rejected-row>td{background:#fff1f1}
.hr-rec-candidate-table tbody tr.hr-rec-rejected-row:hover>td{background:#ffe7e7}
.hr-rec-candidate-table tbody tr.hr-rec-middle-row>td{background:#fff9dc}
.hr-rec-candidate-table tbody tr.hr-rec-middle-row:hover>td{background:#fff3bf}
.hr-rec-candidate-table tbody tr.hr-rec-final-row>td{background:#edf5ff}
.hr-rec-candidate-table tbody tr.hr-rec-final-row:hover>td{background:#deecff}
.hr-rec-candidate-table tbody tr.hr-rec-save-pending{box-shadow:inset 3px 0 0 #d9a514}
.hr-rec-candidate-table tbody tr.hr-rec-save-error{box-shadow:inset 3px 0 0 #b42318}
.hr-rec-inline-schedule{display:grid;grid-template-columns:82px 92px 92px;gap:4px;align-items:center;min-width:274px}
.hr-rec-inline-schedule.disabled{opacity:.58}
.hr-rec-date-button{box-sizing:border-box;width:82px;height:36px;min-height:36px;padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:#fff;font:inherit;white-space:nowrap;cursor:pointer}
.hr-rec-inline-schedule .custom-select-display{box-sizing:border-box;height:36px;min-height:36px;padding:5px 7px;align-items:center}
.hr-rec-time-select,.hr-rec-doc-inline{min-height:36px;max-width:118px;border:1px solid var(--line);border-radius:7px;background:#fff;font:inherit;padding:3px 5px}
.hr-rec-date-popover{position:fixed;z-index:12000;width:286px;padding:10px;background:#fff!important;opacity:1!important;backdrop-filter:none!important;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 38px rgba(0,0,0,.18)}
.hr-rec-date-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.hr-rec-date-head button{border:0;background:transparent;cursor:pointer;font-size:18px;padding:4px 8px}
.hr-rec-date-week,.hr-rec-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.hr-rec-date-week span{font-size:11px;color:var(--muted);padding:4px 0}
.hr-rec-date-grid button{min-height:32px;border:0;border-radius:6px;background:transparent;cursor:pointer}
.hr-rec-date-grid button:hover{background:var(--surface-soft)}
.hr-rec-date-grid .outside{opacity:.35}
.hr-rec-date-grid .holiday,.hr-rec-date-week .holiday{color:#c62828;font-weight:700}
.hr-rec-date-grid .saturday,.hr-rec-date-week .saturday{color:#3159a6}
.hr-rec-date-grid .today{outline:1px solid var(--primary)}
.hr-rec-date-grid .selected{background:var(--primary);color:#fff}
.hr-rec-batch-message-list{display:grid;gap:6px;max-height:340px;overflow:auto}
.hr-rec-batch-message-list>div{display:grid;grid-template-columns:minmax(90px,1fr) minmax(120px,1.4fr) minmax(150px,2fr);gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;align-items:center}
@media(max-width:900px){.hr-rec-inline-schedule{min-width:145px}.hr-rec-date-popover{width:min(286px,calc(100vw - 20px))}}
.hr-rec-date-week .sun,.hr-rec-date-grid .holiday{color:#c62828;font-weight:700}
.hr-rec-date-week .sat,.hr-rec-date-grid .sat{color:#3159a6}
.hr-rec-date-grid .other{opacity:.35}
.hr-rec-date-foot{display:flex;justify-content:space-between;margin-top:7px;gap:6px}
.hr-rec-date-foot button{flex:1;min-height:30px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);cursor:pointer}
.hr-rec-doc-inline-host{min-width:104px}
.hr-rec-time-host,.hr-rec-result-host{min-width:0}
.hr-rec-inline-schedule .custom-select{min-width:0;width:100%}

/* V162 recruitment inline readability/performance */
.hr-rec-candidate-table{table-layout:auto;min-width:1220px}
.hr-rec-candidate-table th:nth-child(11),.hr-rec-candidate-table td:nth-child(11),.hr-rec-candidate-table th:nth-child(12),.hr-rec-candidate-table td:nth-child(12){min-width:282px}
.hr-rec-date-popover *{opacity:1}


/* V163 recruitment candidate address/checkbox density */
.hr-rec-candidate-table .hr-rec-check-col{width:42px;min-width:42px}
.hr-rec-candidate-table .hr-rec-check-col input{width:22px;height:22px;cursor:pointer}
.hr-rec-candidate-table .hr-rec-candidate-cell{position:relative;vertical-align:middle;overflow:visible}
.hr-rec-candidate-table .hr-rec-candidate-cell>strong{display:block;white-space:nowrap}
.hr-rec-candidate-table .hr-rec-address-line{position:absolute;left:8px;bottom:3px;width:620px;max-width:620px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:10.5px;line-height:14px;font-weight:400;color:#66788a;pointer-events:none;z-index:2}
.hr-rec-candidate-table .hr-rec-salary-cell{position:relative;vertical-align:middle;padding-bottom:16px!important}
.hr-rec-candidate-table .hr-rec-salary-cell>strong{display:block;white-space:nowrap;font-weight:500}
.hr-rec-candidate-table .hr-rec-desired-salary-line{position:absolute;left:8px;bottom:3px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:10.5px;line-height:14px;font-weight:400;color:#66788a}
.hr-rec-candidate-table tbody td:nth-child(n+3):nth-child(-n+9){padding-bottom:17px}
.duty-vacation-bulk-head-v167,.duty-vacation-bulk-row-v167{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(145px,1fr)) 42px!important}

/* V168 - 지원자 조회 나이/첨부 드래그 업로드 */
.hr-rec-candidate-table .hr-rec-age-cell{width:58px;min-width:58px;white-space:nowrap;text-align:center}
.hr-rec-candidate-table .hr-rec-attachment-drop{width:78px;min-width:78px;padding:4px 5px}
.hr-rec-attachment-dropzone{min-height:38px;border:1px dashed #aab8c7;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:copy;background:#fff;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}
.hr-rec-attachment-dropzone strong{font-size:12px;line-height:16px}
.hr-rec-attachment-dropzone span{font-size:10px;line-height:13px;color:#6b7c8f;white-space:nowrap}
.hr-rec-attachment-dropzone.dragover{border-color:#1f5f99;background:#eef6ff;box-shadow:inset 0 0 0 1px #1f5f99}
.hr-rec-attachment-dropzone.uploading{cursor:progress;background:#fff8dc;border-color:#c69a20}
.hr-rec-attachment-dropzone.has-files{background:#eaf7ee;border-color:#65a977;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(58,132,78,.08)}
.hr-rec-attachment-dropzone.has-files strong{color:#216b37}
.hr-rec-attachment-dropzone.has-files span{color:#3d7650}
.hr-rec-browser-file-list{display:flex;flex-direction:column;gap:7px}
.hr-rec-browser-file-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;border:1px solid var(--border-color,#dfe3e8);border-radius:8px;background:#fff;padding:10px 12px;cursor:pointer}
.hr-rec-browser-file-row:hover{background:#f3f8f4;border-color:#77aa84}
.hr-rec-browser-file-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hr-rec-browser-file-row span{font-size:11px;color:#6b7c8f}

/* V170 그룹웨어 */
.groupware-panel{min-height:280px}.groupware-two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.groupware-card{border:1px solid var(--line,#d8dee8);border-radius:8px;padding:10px 12px;margin:8px 0;background:#fff}.groupware-card small{display:block;margin-top:4px;color:#667085}.groupware-panel .panel-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.groupware-panel .panel-header>div:last-child{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:760px){.groupware-two-column{grid-template-columns:1fr}.groupware-panel .panel-header{display:block}.groupware-panel .panel-header>div:last-child{margin-top:10px}}
/* V174 groupware integration */
.gw-recipient-groups,.gw-mailbox-tabs,.gw-mail-attachments{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.gw-recipient-list{max-height:240px;overflow:auto;border:1px solid var(--border,#d7dee8);border-radius:8px;padding:8px}.gw-recipient-item{display:flex;padding:6px 8px}.gw-mail-frame{width:100%;min-height:480px;border:1px solid #d7dee8;border-radius:8px;background:#fff}.gw-mail-text{white-space:pre-wrap;word-break:break-word;min-height:220px;padding:16px;border:1px solid #d7dee8;border-radius:8px;background:#fff}.gw-mail-detail{display:grid;gap:12px}.gw-mailbox-tabs{margin-bottom:12px}
/* V175 groupware mail client */
.groupware-panel{min-height:0;padding:14px 16px}.gw-mail-client{display:grid;grid-template-columns:168px minmax(0,1fr);min-height:620px;border:1px solid var(--line,#d8dee8);border-radius:10px;overflow:hidden;background:#fff}.gw-mail-folder-rail{padding:12px 9px;border-right:1px solid var(--line,#d8dee8);background:#f8fafc;display:flex;flex-direction:column;gap:3px}.gw-mail-folder-rail>button:not(.primary-button){border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:7px;font:inherit;color:inherit;cursor:pointer}.gw-mail-folder-rail>button:hover,.gw-mail-folder-rail>button.active{background:#e8f0fa;font-weight:700}.gw-mail-folder-rail .gw-mail-box span{float:right;color:#667085;font-size:12px}.gw-mail-rail-divider{height:1px;background:var(--line,#d8dee8);margin:7px 2px}.gw-mail-main{min-width:0;padding:12px}.gw-mail-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;min-height:38px}.gw-mail-toolbar>strong{font-size:17px}.gw-mail-toolbar>div{display:flex;gap:7px;align-items:center}.gw-mail-search{margin-left:auto}.gw-mail-search input{width:min(420px,38vw);height:36px;border:1px solid #ccd6e2;border-radius:7px;padding:0 10px}.gw-mail-table{max-height:610px;overflow:auto}.gw-mail-table tbody tr{cursor:pointer}.gw-mail-table tbody tr:hover{background:#f4f8fd}.gw-mail-unread td{font-weight:700}.gw-mail-pager{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:10px}.gw-mail-compose-client{display:flex;flex-direction:column;min-height:590px}.gw-mail-compose-toolbar{height:42px;border-bottom:1px solid var(--line,#d8dee8);padding-bottom:8px;margin-bottom:4px}.gw-mail-compose-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid #e5e9ef}.gw-mail-compose-row>span{font-weight:700}.gw-mail-compose-row input{border:0;outline:0;background:transparent;width:100%;min-width:0}.gw-mail-addressbook{padding:8px 0;border-bottom:1px solid #e5e9ef}.gw-mail-attach-row{grid-template-columns:90px auto minmax(0,1fr)}.gw-mail-drop{height:58px;border:1px dashed #cbd5e1;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#667085}.gw-mail-drop.dragover{background:#eef5ff;border-style:solid}.gw-mail-editor{flex:1;min-height:360px;border:0;resize:vertical;padding:16px 4px;font:inherit;outline:none}.gw-mail-detail-head{padding:10px 12px;border-radius:8px;background:#f1f6fc;display:grid;grid-template-columns:1fr auto;gap:5px 12px}.gw-mail-detail-head>strong{font-size:16px}.gw-mail-detail-head>div{grid-column:1/-1;color:#475467}.gw-mail-detail .gw-mail-text{min-height:300px}.gw-mail-detail .gw-mail-frame{min-height:520px}
@media(max-width:900px){.gw-mail-client{grid-template-columns:1fr}.gw-mail-folder-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-right:0;border-bottom:1px solid var(--line,#d8dee8)}.gw-mail-rail-divider{display:none}.gw-mail-search input{width:100%}.gw-mail-toolbar{align-items:stretch;flex-direction:column}.gw-mail-toolbar>div{width:100%}.gw-mail-compose-row{grid-template-columns:76px minmax(0,1fr) auto}}

/* V176 groupware mail */
.gw-mail-main{min-width:0;padding:0}.gw-mail-filter{margin:0 0 8px;border:1px solid #e1e7ef;border-radius:7px;background:#fbfcfe}.gw-mail-filter>summary{cursor:pointer;padding:8px 10px;font-weight:700}.gw-mail-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:0 10px 10px}.gw-mail-filter-grid input,.gw-mail-filter-grid select{height:34px;border:1px solid #ccd6e2;border-radius:6px;padding:0 8px;background:#fff}.gw-mail-read td{font-weight:400;color:#5d6673}.gw-mail-unread td{font-weight:700;color:#101828}.gw-mail-context{position:fixed;z-index:10050;width:250px;max-height:min(420px,calc(100vh - 16px));overflow:auto;background:#fff;border:1px solid #ccd6e2;border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.18);padding:5px}.gw-mail-context button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;border-radius:5px;cursor:pointer}.gw-mail-context button:hover{background:#eef4fb}.gw-mail-frame{width:100%;border:1px solid #d8dee8;border-radius:7px}.gw-recipient-groups .gw-group-pick[data-selected="1"]{background:#dff3e5;border-color:#78b88a}.gw-recipient-groups .gw-group-pick[data-selected="partial"]{background:#fff3cd}.gw-mail-compose-client{min-height:520px}
@media(max-width:900px){.gw-mail-filter-grid{grid-template-columns:1fr 1fr}}

/* V182 mail attachment/signature UX */
.gw-mail-attach-list{margin:6px 0 10px 98px;border:1px solid #d9e0e8;border-radius:7px;overflow:hidden;background:#fff}.gw-mail-attach-summary{display:flex;justify-content:space-between;gap:12px;padding:8px 11px;background:#f5f7fa;border-bottom:1px solid #e2e7ee;font-size:12px}.gw-mail-attach-item{display:grid;grid-template-columns:24px minmax(0,1fr) 76px 30px;align-items:center;gap:8px;min-height:38px;padding:4px 9px;border-bottom:1px solid #edf0f4}.gw-mail-attach-item:last-child{border-bottom:0}.gw-mail-file-icon{font-size:16px;color:#315c88}.gw-mail-attach-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gw-mail-attach-size{color:#667085;text-align:right;font-size:12px}.gw-mail-attach-remove{border:0;background:transparent;font-size:20px;line-height:1;color:#667085;cursor:pointer}.gw-mail-attach-remove:hover{color:#b42318}.gw-mail-attach-empty{padding:9px 11px;color:#8793a2;font-size:12px}.gw-mail-compose-signature{border-top:1px solid #e1e6ed;padding:10px 4px 0}.gw-mail-compose-signature>label{display:flex;align-items:center;gap:8px;font-weight:700;font-size:12px;color:#475467}.gw-mail-compose-signature select{height:32px;min-width:220px;border:1px solid #cfd7e2;border-radius:6px;background:#fff;padding:0 8px}.gw-mail-signature-preview{margin-top:10px;padding:14px 0 4px;display:flex;gap:14px;align-items:flex-start;font-size:13px;line-height:1.55;color:#344054}.gw-mail-signature-preview img{max-width:180px;max-height:80px;object-fit:contain}.gw-mail-signature-preview a{color:#175f9e}.gw-mail-signature-none{margin-top:8px;color:#98a2b3;font-size:12px}.nav-icon{display:inline-flex;width:18px;justify-content:center;align-items:center}.main-nav .nav-button[data-route^="groupware-mail-"] .nav-icon{font-size:15px;color:#dcecff}.main-nav .nav-button[data-route="groupware-mail-compose"] .nav-icon{font-size:17px}.main-nav .nav-button[data-route="groupware-mail-inbox"] .nav-icon{font-size:14px}
@media(max-width:900px){.gw-mail-attach-list{margin-left:0}.gw-mail-signature-preview{flex-direction:column}.gw-mail-compose-signature select{min-width:0;max-width:100%}}

/* V186 HR management fixed viewport: remove whole-page vertical scroll on all personnel-management submenus. */
@media(min-width:821px){
  body.hr-management-page-active{overflow:hidden}
  body.hr-management-page-active .app-shell{height:100vh;min-height:0;overflow:hidden}
  body.hr-management-page-active .main-area{display:flex;height:100vh;min-height:0;flex-direction:column;overflow:hidden}
  body.hr-management-page-active .topbar{flex:0 0 auto}
  body.hr-management-page-active .workspace{box-sizing:border-box;flex:1;min-width:0;min-height:0;padding-bottom:6px;overflow:hidden}
  body.hr-management-page-active .view.is-active{height:100%;min-height:0;overflow:hidden}
  body.hr-management-page-active .hr-body{height:100%!important;min-height:0!important;max-height:100%!important;overflow:hidden!important}
  body.hr-management-page-active .hr-body>.hr-panel{height:100%;min-height:0;overflow:hidden}
  body.hr-management-page-active .hr-body>.hr-panel>.data-table-wrap,
  body.hr-management-page-active .hr-body .hr-reference-body>.data-table-wrap{flex:1;min-height:0;max-height:none!important;overflow-y:auto!important}
}

/* V190 groupware UX */
.main-nav{scrollbar-width:thin;scrollbar-color:rgba(220,232,243,.48) rgba(255,255,255,.08)}.main-nav::-webkit-scrollbar{width:8px}.main-nav::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:8px}.main-nav::-webkit-scrollbar-thumb{background:rgba(220,232,243,.48);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.gw-contact-check-col{width:42px;min-width:42px;text-align:center}.gw-contact-check,.gw-contact-check-all{width:18px;height:18px}.gw-mail-sent-table{width:100%;table-layout:fixed}.gw-mail-sent-table th:nth-child(1),.gw-mail-sent-table td:nth-child(1){width:158px;white-space:nowrap}.gw-mail-sent-table th:nth-child(2),.gw-mail-sent-table td:nth-child(2){width:240px}.gw-mail-sent-table th:nth-child(3),.gw-mail-sent-table td:nth-child(3){width:auto}.gw-mail-sent-table th:nth-child(4),.gw-mail-sent-table td:nth-child(4){width:120px}.gw-mail-sent-table th:nth-child(5),.gw-mail-sent-table td:nth-child(5){width:70px}.gw-mail-sent-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gw-mail-table:has(.gw-mail-sent-table){overflow-x:hidden}

/* V191 groupware mail detail layout */
.modal.gw-mail-detail-modal{width:min(1120px,calc(100vw - 40px));height:min(860px,94vh)}
.modal.gw-mail-detail-modal .modal-body{display:flex;min-height:0;flex:1;overflow:hidden;padding:14px 16px}
.gw-mail-detail{display:flex;flex-direction:column;gap:12px;min-height:0;width:100%}
.gw-mail-detail-head{flex:0 0 auto}
.gw-mail-detail .gw-mail-attachments{flex:0 0 auto;margin:0}
.gw-mail-body-frame{display:block;width:100%;min-height:0;height:100%;max-height:none;flex:1 1 auto;border:1px solid #d8dee8;border-radius:8px;background:#fff}
.gw-mail-detail .gw-mail-text{width:100%;min-height:0;max-height:none;flex:1 1 auto;overflow:auto;margin:0;box-sizing:border-box}
@media(max-width:900px){.modal.gw-mail-detail-modal{width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)}.gw-mail-body-frame{min-height:0;height:100%}.gw-mail-detail .gw-mail-text{min-height:0}}

/* V193 업무 일괄등록: PC는 좌우 스크롤 없이 2단 입력행, 모바일은 세로 카드 */
.modal.wm-batch-work-modal{width:min(1540px,calc(100vw - 24px));max-width:none}
.modal.wm-batch-work-modal .modal-body{overflow-x:hidden}
.wm-batch-work{display:flex;flex-direction:column;gap:10px;min-width:0}
.wm-batch-work-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dce4ec;border-radius:10px;background:#f8fafc}
.wm-batch-work-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.wm-batch-work-head small{color:var(--muted);font-size:12px}
.wm-batch-work-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.wm-batch-work-row{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:10px;border:1px solid #dce4ec;border-radius:10px;background:#fff;min-width:0}
.wm-batch-row-number{display:flex;align-items:center;justify-content:center;width:30px;height:30px;margin-top:19px;border-radius:8px;background:#eef3f8;font-weight:700;color:#334155}
.wm-batch-row-grid{display:grid;min-width:0;gap:8px}
.wm-batch-row-grid-main{grid-template-columns:72px minmax(160px,1.25fr) minmax(105px,.72fr) minmax(115px,.78fr) minmax(135px,.95fr) minmax(175px,1.2fr) 126px minmax(108px,.72fr)}
.wm-batch-row-grid-detail{grid-column:2;grid-template-columns:minmax(220px,2fr) 82px minmax(150px,1.2fr) 92px 68px 68px 68px 38px;align-items:end;margin-top:-2px}
.wm-batch-work-row .form-field{min-width:0;margin:0}
.wm-batch-work-row .form-field>span,.wm-batch-plan>span{font-size:11px;color:#64748b;white-space:nowrap}
.wm-batch-work-row input,.wm-batch-work-row .custom-select-trigger{min-width:0;width:100%}
.wm-batch-content,.wm-batch-memo{min-width:0}
.wm-batch-plan{display:flex;flex-direction:column;justify-content:flex-end;gap:5px;min-width:0}
.wm-batch-plan strong{display:flex;align-items:center;min-height:38px;padding:0 9px;border:1px solid #d8e0e8;border-radius:7px;background:#f8fafc;font-size:13px;white-space:nowrap}
.wm-batch-flag{display:flex;align-items:center;justify-content:center;gap:5px;min-height:38px;padding:0 4px;white-space:nowrap}
.wm-batch-remove-row{align-self:end;width:36px;height:38px;padding:0;font-size:20px}
.wm-batch-work-row input[readonly],.wm-batch-work-row input:disabled{background:#f1f5f9;color:#475569}
@media(max-width:1220px){
  .wm-batch-row-grid-main{grid-template-columns:80px minmax(170px,1.3fr) minmax(115px,.8fr) minmax(125px,.9fr);}
  .wm-batch-row-grid-main>.form-field:nth-child(n+5){grid-column:auto}
  .wm-batch-row-grid-detail{grid-template-columns:minmax(200px,2fr) 82px minmax(150px,1fr) 92px 68px 68px 68px 38px}
}
@media(max-width:900px){
  .modal.wm-batch-work-modal{width:min(100%,calc(100vw - 12px))}
  .wm-batch-work-row{grid-template-columns:28px minmax(0,1fr);padding:8px}
  .wm-batch-row-number{width:26px;height:26px}
  .wm-batch-row-grid-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wm-batch-row-grid-detail{grid-template-columns:repeat(2,minmax(0,1fr));grid-column:2}
  .wm-batch-content,.wm-batch-memo{grid-column:1/-1}
  .wm-batch-plan{grid-column:1/-1}
  .wm-batch-flag{justify-content:flex-start}
}
@media(max-width:560px){
  .wm-batch-work-head{align-items:stretch;flex-direction:column}
  .wm-batch-work-head .wm-batch-add-row{width:100%}
  .wm-batch-work-row{display:block}
  .wm-batch-row-number{margin:0 0 7px}
  .wm-batch-row-grid-main,.wm-batch-row-grid-detail{grid-template-columns:1fr;grid-column:auto}
  .wm-batch-content,.wm-batch-memo,.wm-batch-plan{grid-column:auto}
  .wm-batch-remove-row{width:100%}
}


body.modal-scroll-lock{overflow:hidden}
.gw-mail-subject-row{grid-template-columns:90px minmax(0,1fr) minmax(250px,320px)}
.gw-mail-store-box{display:grid;grid-template-columns:auto minmax(150px,1fr);align-items:center;gap:8px;min-width:0}
.gw-mail-store-box>span{font-size:12px;font-weight:700;color:#475467;white-space:nowrap}
.gw-mail-store-box .gw-custom-select{min-width:0}
.gw-mail-direction-col{width:64px}
.gw-mail-direction{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 8px;border-radius:12px;font-size:12px;font-weight:700}
.gw-mail-direction.received{background:#e8f2ff;color:#175cd3}
.gw-mail-direction.sent{background:#eaf7ef;color:#067647}
@media(max-width:900px){
  .gw-mail-subject-row{grid-template-columns:76px minmax(0,1fr)}
  .gw-mail-store-box{grid-column:2;grid-template-columns:90px minmax(0,1fr);padding:4px 0 8px}
}

/* V195 groupware mail rule groups */
.gw-rule-modal .modal-body{overflow-x:hidden}
.gw-rule-header-grid{grid-template-columns:minmax(180px,1fr) 130px minmax(220px,1.2fr)}
.gw-rule-header-grid .form-field.full{grid-column:auto}
.gw-rule-guide{margin:8px 0 12px;padding:9px 12px;border:1px solid var(--border,#d7dee8);border-radius:8px;background:#f7f9fc;font-size:12px;line-height:1.45}
.gw-rule-groups{display:flex;flex-direction:column;gap:10px}
.gw-rule-group{border:1px solid var(--border,#d7dee8);border-radius:10px;padding:10px 12px;background:#fff}
.gw-rule-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.gw-rule-group-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.gw-rule-group-controls .gw-custom-select{width:190px;min-width:0}
.gw-rule-first-group{display:inline-flex;align-items:center;height:36px;padding:0 10px;border-radius:8px;background:#edf2f7;font-size:12px;font-weight:700}
.gw-rule-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.gw-rule-group-grid .form-field.full{grid-column:1/-1}
.gw-rule-group-grid textarea{min-height:66px;resize:vertical}
.gw-rule-group-actions{display:flex;align-items:center;gap:10px;margin:10px 0 4px}
.gw-rule-group-actions span{font-size:12px;color:var(--muted,#637083)}
.gw-rule-flag-grid{margin-top:8px}
.gw-rule-table-wrap{width:100%;overflow-x:hidden;border:1px solid var(--border,#d7dee8);border-radius:8px}
.gw-rule-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
.gw-rule-table th:nth-child(1),.gw-rule-table td:nth-child(1){width:72px}
.gw-rule-table th:nth-child(2),.gw-rule-table td:nth-child(2){width:150px}
.gw-rule-table th:nth-child(4),.gw-rule-table td:nth-child(4){width:150px}
.gw-rule-table th,.gw-rule-table td{min-width:0;overflow:hidden}
.gw-rule-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.45;max-height:2.9em}
@media (max-width:900px){
  .gw-rule-header-grid{grid-template-columns:1fr}
  .gw-rule-group-head{align-items:flex-start;flex-direction:column}
  .gw-rule-group-controls{width:100%;justify-content:flex-start}
  .gw-rule-group-controls .gw-custom-select{width:min(100%,240px)}
  .gw-rule-group-grid{grid-template-columns:1fr}
  .gw-rule-group-grid .form-field.full{grid-column:auto}
  .gw-rule-table th:nth-child(1),.gw-rule-table td:nth-child(1){width:58px}
  .gw-rule-table th:nth-child(2),.gw-rule-table td:nth-child(2){width:105px}
  .gw-rule-table th:nth-child(4),.gw-rule-table td:nth-child(4){width:105px}
}
.gw-rule-table-wrap{overflow-x:hidden!important}
.gw-rule-table{min-width:0!important;max-width:100%!important}
.gw-rule-table td:nth-child(3){white-space:normal!important}

/* V196 지원자 상태 부서 보조표시 */
.hr-rec-status-department{display:block;margin-top:4px;font-size:11px;line-height:1.15;color:#61758a;white-space:normal;font-weight:600}

.gw-rule-view-tabs{display:flex;gap:8px;margin:0 0 12px}.gw-rule-view-tab.active{background:#185d93;color:#fff;border-color:#185d93}.gw-match-group-table-wrap{overflow-x:hidden}.gw-match-group-table{width:100%;table-layout:fixed}.gw-match-group-table th:nth-child(1),.gw-match-group-table td:nth-child(1){width:110px}.gw-match-group-table th:nth-child(2),.gw-match-group-table td:nth-child(2){width:180px}.gw-match-group-table td{min-width:0;overflow:hidden}.gw-match-group-values{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.gw-mail-timestamp{min-width:158px;white-space:nowrap}.gw-mail-raw-actions{display:flex;justify-content:flex-end;flex:0 0 auto}.gw-mail-raw-actions .secondary-button{text-decoration:none;display:inline-flex;align-items:center}

/* V199 groupware mailbox layout: compact custom mailbox tabs and table-only scrolling */
.gw-mailbox-tabs{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:0 0 4px!important;padding:0 2px!important;overflow:hidden}
.gw-mailbox-tabs-empty{min-height:34px;align-items:center;color:#738398;font-size:12px}
.gw-rule-search{display:flex;align-items:center;gap:6px;margin-left:auto;min-width:min(420px,45vw)}
.gw-rule-search-input{width:100%;height:36px;border:1px solid #cfd9e5;border-radius:7px;padding:0 10px;background:#fff}
.gw-mail-address-cell{cursor:context-menu}
.gw-mail-direction{letter-spacing:0!important}
.gw-mail-direction::before,.gw-mail-direction::after{content:none!important}
.hr-rec-calendar-sync{display:block;margin-top:3px;font-size:10px;line-height:1.15;white-space:nowrap}.hr-rec-calendar-sync.pending{color:#7a5b00}.hr-rec-calendar-sync.error{color:#b42318;font-weight:700;cursor:help}
.gw-mailbox-tab{display:inline-flex;min-width:0;max-width:220px;height:34px;align-items:center;gap:6px;border:1px solid #d4dee9;border-radius:8px;padding:0 11px;background:#fff;color:#53657a;font-weight:800;cursor:pointer}
.gw-mailbox-tab:hover{border-color:#9db7cf;background:#f5f9fd;color:#244f78}
.gw-mailbox-tab.active{border-color:#2d6da3;background:#eaf3fb;color:#174f80;box-shadow:inset 0 -2px 0 #2d6da3}
.gw-mailbox-tab>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gw-mailbox-tab>b{display:inline-flex;min-width:20px;height:20px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:10px;padding:0 6px;background:#dcecff;color:#175f9e;font-size:11px}
.gw-mail-list-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
.gw-mail-list-table th,.gw-mail-list-table td{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.gw-mail-inbox-table th:nth-child(1),.gw-mail-inbox-table td:nth-child(1){width:150px}
.gw-mail-inbox-table th:nth-child(2),.gw-mail-inbox-table td:nth-child(2){width:24%}
.gw-mail-inbox-table th:nth-child(3),.gw-mail-inbox-table td:nth-child(3){width:auto}
.gw-mail-inbox-table th:nth-child(4),.gw-mail-inbox-table td:nth-child(4){width:120px}
.gw-mail-inbox-table th:nth-child(5),.gw-mail-inbox-table td:nth-child(5){width:64px}
.gw-mail-mixed-table th:nth-child(1),.gw-mail-mixed-table td:nth-child(1){width:150px}
.gw-mail-mixed-table th:nth-child(2),.gw-mail-mixed-table td:nth-child(2){width:64px}
.gw-mail-mixed-table th:nth-child(3),.gw-mail-mixed-table td:nth-child(3){width:22%}
.gw-mail-mixed-table th:nth-child(4),.gw-mail-mixed-table td:nth-child(4){width:auto}
.gw-mail-mixed-table th:nth-child(5),.gw-mail-mixed-table td:nth-child(5){width:120px}
.gw-mail-mixed-table th:nth-child(6),.gw-mail-mixed-table td:nth-child(6){width:64px}
.gw-mail-sent-table th:nth-child(1),.gw-mail-sent-table td:nth-child(1){width:158px}
.gw-mail-sent-table th:nth-child(2),.gw-mail-sent-table td:nth-child(2){width:24%}
.gw-mail-sent-table th:nth-child(3),.gw-mail-sent-table td:nth-child(3){width:auto}
.gw-mail-sent-table th:nth-child(4),.gw-mail-sent-table td:nth-child(4){width:120px}
.gw-mail-sent-table th:nth-child(5),.gw-mail-sent-table td:nth-child(5){width:64px}
.gw-mail-table{width:100%;min-width:0;overflow-x:hidden!important}
@media(min-width:761px){
  body.groupware-mail-page-active{overflow:hidden}
  body.groupware-mail-page-active .app-shell{height:100vh;min-height:0;overflow:hidden}
  body.groupware-mail-page-active .main-area{display:flex;height:100vh;min-height:0;flex-direction:column;overflow:hidden}
  body.groupware-mail-page-active .topbar{flex:0 0 auto}
  body.groupware-mail-page-active .workspace{box-sizing:border-box;flex:1;min-width:0;min-height:0;height:auto;padding-bottom:8px;overflow:hidden}
  body.groupware-mail-page-active .view.is-active{display:flex;height:100%;min-height:0;flex-direction:column;gap:10px;overflow:hidden}
  body.groupware-mail-custom-page-active .workspace{padding-top:8px}
  body.groupware-mail-custom-page-active .view.is-active{gap:4px}
  body.groupware-mail-page-active .view.is-active>.groupware-panel{box-sizing:border-box;display:flex;flex:1;min-height:0;flex-direction:column;margin-top:0;overflow:hidden}
  body.groupware-mail-page-active .gw-mail-main{display:flex;flex:1;min-height:0;flex-direction:column;width:100%;box-sizing:border-box}
  body.groupware-mail-page-active .gw-mail-toolbar,body.groupware-mail-page-active .gw-mail-filter,body.groupware-mail-page-active .gw-mail-pager{flex:0 0 auto}
  body.groupware-mail-page-active .gw-mail-table{flex:1;min-height:0;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important}
}
@media(max-width:900px){
  .gw-mailbox-tab{max-width:180px}
  .gw-mail-inbox-table th:nth-child(1),.gw-mail-inbox-table td:nth-child(1),.gw-mail-mixed-table th:nth-child(1),.gw-mail-mixed-table td:nth-child(1),.gw-mail-sent-table th:nth-child(1),.gw-mail-sent-table td:nth-child(1){width:132px}
  .gw-mail-inbox-table th:nth-child(2),.gw-mail-inbox-table td:nth-child(2),.gw-mail-sent-table th:nth-child(2),.gw-mail-sent-table td:nth-child(2){width:23%}
  .gw-mail-mixed-table th:nth-child(3),.gw-mail-mixed-table td:nth-child(3){width:20%}
  .gw-mail-inbox-table th:nth-child(4),.gw-mail-inbox-table td:nth-child(4),.gw-mail-mixed-table th:nth-child(5),.gw-mail-mixed-table td:nth-child(5),.gw-mail-sent-table th:nth-child(4),.gw-mail-sent-table td:nth-child(4){width:96px}
  .gw-mail-inbox-table th:nth-child(5),.gw-mail-inbox-table td:nth-child(5),.gw-mail-mixed-table th:nth-child(6),.gw-mail-mixed-table td:nth-child(6),.gw-mail-sent-table th:nth-child(5),.gw-mail-sent-table td:nth-child(5){width:54px}
}
@media(max-width:760px){
  body.groupware-mail-page-active{height:100dvh;min-height:0;overflow:hidden}
  body.groupware-mail-page-active .app-shell{display:flex;height:100dvh;min-height:0;flex-direction:column;overflow:hidden}
  body.groupware-mail-page-active .sidebar{position:relative;flex:0 0 auto;width:100%;height:auto;max-height:none;overflow:hidden}
  body.groupware-mail-page-active .main-nav{overflow-x:auto;overflow-y:hidden}
  body.groupware-mail-page-active .main-area{display:flex;flex:1;height:auto;min-height:0;flex-direction:column;overflow:hidden}
  body.groupware-mail-page-active .topbar{flex:0 0 auto}
  body.groupware-mail-page-active .workspace{box-sizing:border-box;flex:1;min-width:0;min-height:0;height:auto;padding-bottom:6px;overflow:hidden}
  body.groupware-mail-page-active .view.is-active{display:flex;height:100%;min-height:0;flex-direction:column;gap:8px;overflow:hidden}
  body.groupware-mail-custom-page-active .workspace{padding-top:6px}
  body.groupware-mail-custom-page-active .view.is-active{gap:4px}
  body.groupware-mail-page-active .view.is-active>.groupware-panel{box-sizing:border-box;display:flex;flex:1;min-height:0;flex-direction:column;margin-top:0;overflow:hidden}
  body.groupware-mail-page-active .gw-mail-main{display:flex;flex:1;min-height:0;flex-direction:column;width:100%;box-sizing:border-box}
  body.groupware-mail-page-active .gw-mail-toolbar,body.groupware-mail-page-active .gw-mail-filter,body.groupware-mail-page-active .gw-mail-pager,body.groupware-mail-page-active .gw-mailbox-tabs{flex:0 0 auto}
  body.groupware-mail-page-active .gw-mail-table{flex:1;min-height:0;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important}
}
@media(max-width:900px){.gw-rule-view-tabs{flex-wrap:wrap}.gw-rule-search{order:3;width:100%;min-width:0;margin-left:0}.gw-rule-search-input{min-width:0}}

/* V202 mail recipient autocomplete + delivery status */
.gw-mail-compose-row{position:relative}
.gw-mail-autocomplete{position:absolute;z-index:120;left:90px;right:88px;top:calc(100% - 2px);max-height:300px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 10px 28px rgba(15,23,42,.16);padding:4px}
.gw-mail-autocomplete[hidden]{display:none}
.gw-mail-autocomplete button{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);gap:2px 10px;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer}
.gw-mail-autocomplete button:hover{background:#eef5ff}
.gw-mail-autocomplete strong{grid-row:1/3;align-self:center;white-space:nowrap}.gw-mail-autocomplete span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467}.gw-mail-autocomplete small{color:#667085}
.gw-mail-delivery{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:3px 7px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.gw-mail-delivery[data-status="읽음"]{background:#dcfce7;color:#166534}.gw-mail-delivery[data-status="안읽음"]{background:#e0f2fe;color:#075985}.gw-mail-delivery[data-status="전송중"]{background:#fef3c7;color:#92400e}.gw-mail-delivery[data-status="실패"]{background:#fee2e2;color:#991b1b}.gw-mail-delivery[data-status="미추적"]{background:#f1f5f9;color:#475569}
.gw-mail-sent-table th:nth-child(6),.gw-mail-sent-table td:nth-child(6){width:82px;text-align:center}
@media(max-width:900px){.gw-mail-autocomplete{left:76px;right:76px}.gw-mail-sent-table th:nth-child(6),.gw-mail-sent-table td:nth-child(6){width:70px}}
.gw-mail-autocomplete button.active{background:#eef5ff}
