﻿/* 2026-10-01 장승호 - PMS 공통 화면 및 반응형 구성 */
:root{--navy:#182c48;--navy-deep:#12243d;--blue:#3164d7;--text:#25364a;--muted:#64748b;--line:#e3e8ef;--canvas:#f4f6fa;--white:#fff;--green:#18745c;--radius:14px;--sidebar:232px}
*{box-sizing:border-box}
html{font-size:14px;scroll-behavior:smooth}
body{margin:0;color:var(--text);background:var(--canvas);font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button,a,input,select{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #5e92ed;outline-offset:3px}
h1,h2,h3,p{margin:0}
button{cursor:pointer}
strong{font-weight:700}
.skip-link{position:fixed;left:16px;top:-100px;padding:10px 18px;background:#fff;z-index:100;border:2px solid var(--blue);border-radius:8px}
.skip-link:focus{top:12px}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--navy);color:#dce5f4;padding:30px 18px;display:flex;flex-direction:column;z-index:30}
.brand{display:flex;align-items:center;gap:12px;margin:0 6px 39px;font-weight:700;font-size:18px;letter-spacing:-.4px;white-space:nowrap;color:#fff}
.brand-mark{display:grid;place-items:center;width:36px;height:39px;background:#4674df;border-radius:10px;font-size:24px;font-family:Arial,sans-serif;box-shadow:0 5px 12px #0d1c3030}
.brand small{display:block;color:#c0cee2;font-size:11px;font-weight:400;letter-spacing:0;margin-top:3px}
.nav-caption{color:#a6b7d0;font-size:11px;font-weight:700;letter-spacing:.8px;margin:0 14px 11px}
.nav-link{display:flex;align-items:center;gap:13px;padding:12px 16px;margin-bottom:5px;border-radius:9px;color:#c7d4e7;font-weight:600}
.nav-link:hover{background:#ffffff0c;color:#fff}
.nav-link.active{background:#345075;color:#fff;box-shadow:inset 3px 0 #73a0ff}
.nav-icon{width:20px;text-align:center;font-size:19px;font-weight:400;color:#c4d4ed}
.settings-caption{margin-top:35px}
.sidebar-footer{display:flex;align-items:center;gap:9px;margin-top:auto;padding:20px 8px 0;border-top:1px solid #ffffff1c;font-size:12px;color:#c0cde0}
.sidebar-version{margin-left:auto;color:#9fafd0;font-size:11px}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#29a783;flex-shrink:0}
.app-shell{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}
.app-header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:16px}
.breadcrumb{display:flex;align-items:center;gap:13px;font-size:12px;color:var(--muted)}
.breadcrumb strong{font-size:13px;color:var(--text)}
.breadcrumb-divider{color:#bbc5d3}
.header-organizations{font-size:11px;font-weight:700;letter-spacing:.5px;color:#526579;white-space:nowrap}
.header-organizations span{margin:0 9px;color:#bdc7d5}
.content{width:100%;max-width:1560px;margin:0 auto;padding:34px 34px 40px;flex:1}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}
.eyebrow{font-size:11px;font-weight:700;color:var(--blue);letter-spacing:.6px;margin-bottom:6px}
h1{font-size:29px;line-height:1.3;letter-spacing:-1px;font-weight:700}
.page-description{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.65}
.page-mode{font-size:11px;background:#e9eef7;color:#60738d;border:1px solid #dbe4f0;padding:6px 13px;border-radius:20px;font-weight:600;white-space:nowrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:39px;padding:9px 16px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.5;transition:background .15s}
.button-primary{background:var(--blue);color:#fff;box-shadow:0 3px 8px #3164d712}
.button-primary:hover{background:#2452bf}
.button-secondary{background:#fff;color:#415570;border-color:#d9e0eb}
.button-secondary:hover{background:#f6f8fc}
.button-plain{color:var(--muted);background:transparent}
.button-plain:hover{background:#f4f6fa}
.button-disabled{color:#a2aec0;background:#f6f8fb;border-color:#e5eaf1;cursor:default}
.text-link{font-size:12px;font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:10px}
.text-link:hover,.employee-name:hover{text-decoration:underline}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:23px}
.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:23px 24px;box-shadow:0 3px 12px #24334d03}
.metric-label{font-size:13px;color:#63748c;font-weight:600}
.metric-value{font-size:37px;letter-spacing:-1px;font-weight:700;line-height:1.25;margin-top:12px;color:#213959;font-variant-numeric:tabular-nums}
.metric-value span{font-size:13px;font-weight:500;letter-spacing:0;margin-left:8px;color:#7f8fa6}
.metric-card p{font-size:11px;color:#7d8ca2;margin-top:11px}
.metric-featured{background:linear-gradient(125deg,#203854,#29466b);border-color:#29466b}
.metric-featured .metric-label,.metric-featured .metric-value span,.metric-featured p{color:#c0cee1}
.metric-featured .metric-value{color:#fff}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px;margin-bottom:23px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px #24334d03;overflow:hidden}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 25px;border-bottom:1px solid #edf0f5;min-height:78px}
h2{font-size:15px;letter-spacing:-.35px;display:flex;align-items:center;gap:10px}
.panel-heading p{font-size:11px;color:#7b8aa0;margin-top:5px}
.subtle-label{font-size:11px;color:#7d8ca2;white-space:nowrap}
.company-list{padding:12px 25px 19px}
.company-stat{display:flex;align-items:center;gap:14px;padding:14px 0}
.company-avatar{width:45px;height:45px;display:grid;place-items:center;border-radius:11px;font-size:11px;font-weight:700;flex-shrink:0}
.company-its{background:#eaf0fe;color:#3967c4}
.company-pis{background:#f0ecfc;color:#7254b6}
.company-core{background:#e7f4ee;color:#26785e}
.company-stat-info{flex:1;min-width:0}
.company-stat-info strong{display:block;font-size:13px;margin-bottom:8px}
.company-stat progress{width:100%;height:5px}
progress{appearance:none;-webkit-appearance:none;border:0;overflow:hidden;border-radius:10px;background:#edf1f7}
progress::-webkit-progress-bar{background:#edf1f7;border-radius:10px}
progress::-webkit-progress-value{background:#5a81d5;border-radius:10px}
progress::-moz-progress-bar{background:#5a81d5;border-radius:10px}
.stat-count{font-size:22px;min-width:48px;text-align:right;font-variant-numeric:tabular-nums}
.stat-count span,.team-stat strong span{font-size:11px;color:#8795aa;font-weight:400;margin-left:4px}
.team-list{padding:13px 25px 16px}
.team-stat{display:grid;grid-template-columns:110px minmax(30px,1fr) 43px;align-items:center;gap:15px;padding:11px 0;font-size:12px}
.team-stat progress{width:100%;height:5px}
.team-stat strong{text-align:right;font-size:15px;font-variant-numeric:tabular-nums}
.overview-strip{padding:21px 25px;background:#edf2fa;border:1px solid #e0e8f4;border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center;gap:16px}
.overview-strip strong{font-size:12px;margin-left:8px}
.overview-strip p{font-size:11px;color:#6d7f97;margin:5px 0 0 18px}
.filter-panel{padding:23px 25px;margin-bottom:23px}
.filter-fields{display:grid;grid-template-columns:1.5fr 1fr 1.2fr 1fr;gap:15px}
.filter-fields label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;color:#61738b;min-width:0}
input,select{width:100%;height:42px;border:1px solid #dbe2ec;border-radius:7px;background:#fff;color:var(--text);padding:9px 11px;font-size:12px;min-width:0}
input::placeholder{color:#8996a9}
input:hover,select:hover{border-color:#b6c6dc}
.filter-actions{display:flex;gap:9px;margin-top:18px}
.validation-summary{color:#ad353b;font-size:12px;margin-top:16px}
.validation-summary-valid{display:none}
.validation-summary ul{margin:0;padding-left:18px}
.count-badge{display:inline-block;background:#edf2fa;color:#55739f;padding:2px 8px;font-size:11px;font-weight:700;border-radius:20px;line-height:1.65}
.table-scroll{overflow:auto;max-width:100%;overscroll-behavior-x:contain}
table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}
th{background:#fafbfd;color:#7b8ba2;font-size:10px;font-weight:700;letter-spacing:.2px;padding:13px 20px;white-space:nowrap;border-bottom:1px solid #e8edf5}
td{padding:16px 20px;border-bottom:1px solid #edf1f6;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafcff}
.employee-table{min-width:830px}
.employee-name{color:#263f63;font-weight:700;font-size:13px;white-space:nowrap}
.cell-secondary{display:block;color:#8997a9;font-size:10px;font-weight:400;margin-top:4px}
.company-badge{display:inline-block;font-size:10px;font-weight:700;padding:4px 9px;border-radius:5px;white-space:nowrap}
.account-cell{font-family:Consolas,monospace;font-size:11px;color:#6c7c91;overflow-wrap:anywhere}
.date-cell{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;color:#61738b}
.status-badge{display:inline-block;padding:3px 9px;font-size:10px;font-weight:600;color:#47725f;background:#eef6f1;border:1px solid #e4f0e8;border-radius:5px;white-space:nowrap;vertical-align:middle}
.pagination{border-top:1px solid #edf1f6;padding:18px 23px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:11px;color:#7c8aa0}
.pagination-controls{display:flex;gap:13px;align-items:center}
.pagination-controls .button{min-height:32px;padding:6px 12px;font-size:11px}
.pagination-controls strong{color:#37567f;white-space:nowrap}
.pagination-controls strong span{color:#94a1b4;font-weight:400;margin-left:5px}
.empty-state{text-align:center;padding:55px 24px;color:#7a899e}
.empty-state strong{color:#53667f;font-size:13px}
.empty-state p{font-size:12px;margin:10px auto 18px;line-height:1.8}
.back-link{display:inline-flex;color:#73859e;font-size:12px;margin:0 0 18px}
.back-link:hover{color:var(--blue)}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 25px;margin:0;padding:26px}
.detail-grid dt,.project-details dt{font-size:10px;color:#7f8ea3;margin-bottom:7px}
.detail-grid dd,.project-details dd{margin:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.section-gap{margin-top:23px}
.project-name{min-width:300px;max-width:550px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.number-cell{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700;color:#355783}
.project-list{padding:24px;display:grid;gap:18px}
.project-card{border:1px solid #e4eaf3;border-radius:12px;padding:24px;background:#fff}
.project-card-top{display:flex;justify-content:space-between;align-items:center;gap:15px}
.project-code{font-size:10px;letter-spacing:.6px;color:#7c8da5;font-family:Consolas,monospace}
.project-card h3{font-size:16px;line-height:1.85;color:#2e4667;margin:13px 0 14px;overflow-wrap:anywhere}
.project-tags{display:flex;gap:10px;align-items:center;font-size:11px;color:#75849a;flex-wrap:wrap}
.type-badge{font-size:10px;background:#f3f5f9;color:#63748b;border:1px solid #e9edf4;padding:3px 8px;border-radius:5px}
.project-details{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px;margin:22px 0 0;padding:20px 0 0;border-top:1px solid #edf0f5}
.project-details dd{font-size:12px}
.connection-banner{display:flex;align-items:center;gap:13px;padding:22px 25px;border-radius:var(--radius);background:#edf6f1;border:1px solid #d8ebe0;margin-bottom:23px}
.connection-banner strong{color:#3c7159;font-size:14px}
.connection-banner p{font-size:11px;color:#769081;margin-top:5px}
.connection-help{padding:25px;margin-top:23px}
.connection-help p{font-size:12px;color:#6b7f97;margin-top:14px;line-height:1.9}
code{font-family:Consolas,monospace;background:#f2f5fa;border-radius:5px;padding:3px 6px;overflow-wrap:anywhere}
.code-cell{font-family:Consolas,monospace;font-size:11px;min-width:190px;overflow-wrap:anywhere}
.alert{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #efdadb;background:#fcf3f3;border-radius:var(--radius);padding:22px 25px;margin-bottom:23px}
.alert strong{font-size:13px;color:#a65055}
.alert p{font-size:12px;color:#96747a;line-height:1.8;margin-top:7px}
.alert .button{flex-shrink:0}
.error-page{max-width:750px;margin:45px auto}
.error-page h1{font-size:23px;color:#3d5575;margin:12px 0}
.error-page p{max-width:500px}
.error-page code{display:inline-block;font-size:11px;max-width:100%;margin:0 0 22px}
.error-page-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.app-footer{display:flex;justify-content:space-between;gap:18px;margin:0 34px;padding:20px 0;border-top:1px solid #e3e8f0;color:#94a0b2;font-size:10px}
.menu-toggle{display:none;border:1px solid #e0e6ef;background:#fff;border-radius:7px;font-size:16px;color:#526780;padding:5px 9px}
@media(min-width:1600px){.content{padding-top:42px}.metric-card{padding:28px}.dashboard-grid{grid-template-columns:1fr 1.15fr}}
@media(max-width:1180px){:root{--sidebar:210px}.sidebar{padding-left:14px;padding-right:14px}.brand{font-size:16px;gap:10px}.content{padding:28px 24px 35px}.app-header{padding:0 24px}.metric-card{padding:21px 18px}.metric-grid{gap:13px}.dashboard-grid{gap:18px}.panel-heading{padding:21px}.company-list,.team-list{padding-left:21px;padding-right:21px}.filter-fields{grid-template-columns:1.3fr 1fr 1.1fr 1fr;gap:11px}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.team-stat{grid-template-columns:100px minmax(20px,1fr) 39px;gap:10px}.project-details{grid-template-columns:1.7fr 1fr 1fr}}
@media(max-width:940px){:root{--sidebar:195px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-details{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:14px}.brand small{font-size:10px}.brand-mark{width:31px;height:35px}.header-organizations{font-size:10px}.header-organizations span{margin:0 5px}.page-heading{align-items:flex-start}.page-heading .button{margin-top:24px}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);width:232px;transition:transform .18s}.nav-open .sidebar{transform:translateX(0)}.app-shell{margin-left:0}.app-header{height:66px;padding:0 18px;justify-content:flex-start}.menu-toggle{display:block;position:relative;z-index:40}.nav-open .menu-toggle{position:fixed;left:243px;top:16px;box-shadow:0 2px 12px #20385720}.breadcrumb{gap:9px}.header-organizations{margin-left:auto}.content{padding:25px 18px 32px}.app-footer{margin:0 18px}.page-heading{gap:12px;flex-wrap:wrap;margin-bottom:22px}.page-heading .button{margin-top:2px}.page-heading h1{font-size:25px}.page-description{font-size:12px}.metric-value{font-size:31px}.metric-card{padding:21px 18px}.metric-grid{gap:12px}.panel-heading{padding:20px;align-items:flex-start}.panel-heading .subtle-label{font-size:10px}.filter-panel{padding:20px}.filter-fields{gap:14px}.pagination{padding:17px;flex-wrap:wrap}.pagination-controls{margin-left:auto}.overview-strip{padding:19px;align-items:flex-start;flex-direction:column}.detail-grid{padding:22px;gap:24px 18px}.alert{align-items:flex-start;flex-direction:column;padding:20px}.project-list{padding:18px}.project-card{padding:19px}.project-card h3{font-size:14px}.project-details{gap:18px}.error-page{margin-top:20px}}
@media(max-width:420px){.header-organizations{display:none}.page-heading{display:block}.page-heading .button,.page-heading .page-mode{margin-top:17px}.page-mode{display:inline-block}.filter-fields{grid-template-columns:1fr}.panel-heading{gap:10px}.metric-card{padding:19px 16px}.metric-label{font-size:12px}.detail-grid{grid-template-columns:1fr 1fr}.project-details{grid-template-columns:1fr}.company-stat{gap:11px}.company-avatar{width:39px;height:39px}.company-stat-info strong{font-size:12px}}

/*2026-10-01 장승호 - 로그인/계정 관리 입력 화면 및 로그인 사용자 표시*/
.auth-body { display:grid;place-items:center;min-height:100vh;padding:24px;background:#f3f6fb; }
.auth-card { width:min(100%,440px);padding:36px;background:#fff;border:1px solid #e1e7f0;border-radius:18px;box-shadow:0 12px 38px #233b5a10; }
.auth-card .brand-mark { margin-bottom:22px; }
.auth-card h1 { font-size:28px;margin:12px 0; }
.account-panel { max-width:720px;padding:28px; }
.account-form { display:grid;gap:18px;margin-top:24px; }
.account-form label { display:grid;gap:8px;color:#33455e;font-weight:600; }
.account-form input:not([type=checkbox]),.account-form select { width:100%;height:44px;border:1px solid #d8e1ef;border-radius:7px;padding:9px 12px;background:#fff;color:#253b58;font:inherit; }
.account-form .check-label { display:flex;align-items:center;gap:10px; }
.account-form input[type=checkbox] { width:18px;height:18px; }
.account-form .button { justify-self:start; }
.auth-message { padding:14px;border-radius:8px;background:#e9f4ef;color:#245c48; }
.session-controls { display:flex;align-items:center;gap:16px;color:#415570;font-size:12px; }
.session-controls form { margin:0; }
@media(max-width:640px) { .session-controls { gap:8px; }.session-controls span { max-width:120px; }.auth-card { padding:24px; }.account-panel { padding:20px; } }

/*2026-10-02 장승호 - 관리자 직원 편집/감사 화면, 작은 화면은 한 열*/
.employee-edit-panel { padding: 28px; max-width: 1080px; margin-left: auto; margin-right: auto; }
.employee-edit-panel .account-form { max-width: none; }
.employee-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.employee-form-grid label { display: flex; flex-direction: column; gap: 7px; }
.employee-form-grid .full-width { grid-column: 1 / -1; }
.employee-form-grid small { font-weight: normal; color: var(--text-muted, #617086); line-height: 1.6; }
.employee-edit-panel textarea { width: 100%; padding: 10px 12px; border: 1px solid #cad3df; border-radius: 8px; font: inherit; resize: vertical; }
.employee-note { white-space: pre-wrap; overflow-wrap: anywhere; }
.employee-audit-cell { min-width: 250px; max-width: 500px; overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 680px) { .employee-form-grid { grid-template-columns: 1fr; } }

.employee-current-panel { padding: 24px; }
.employee-success { padding: 18px 24px; margin-bottom: 20px; background: #eaf7ef; color: #215d3b; border: 1px solid #b4dec2; border-radius: 9px; }
.employee-edit-panel textarea:focus-visible { outline: 3px solid #5e92ed; outline-offset: 3px; }
@media (max-width: 680px) { .employee-edit-panel, .employee-current-panel { padding: 20px; } }

/*2026-10-03 장승호 - 본문·입력·표 가독성, 기존 배치/모바일 스크롤 유지*/
html { font-size:16px; }
body { font-size:16px; line-height:1.6; }
input,select,textarea,button,.account-form,.auth-form { font-size:16px; }
.button { font-size:16px; min-height:44px; padding:10px 16px; }
.text-link,.nav-link { font-size:16px; }
h1 { font-size:26px; line-height:1.35; }
h2 { font-size:20px; line-height:1.45; }
h3 { font-size:18px; }
table th,table td { font-size:16px; line-height:1.6; padding:13px 16px; vertical-align:top; }
.cell-secondary,.page-description,.panel-heading p,.metric-card p,.subtle-label,.metric-label,.session-controls,.breadcrumb,.breadcrumb strong,.employee-form-grid small,.account-form small,small,.brand small,.nav-caption,.sidebar-footer,.sidebar-version,.eyebrow,.page-mode,.header-organizations { font-size:14px; line-height:1.6; }
.numeric { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.audit-list { padding:24px; }
.audit-card { border:1px solid #d8e1ef; border-radius:10px; padding:20px; margin:18px 0; background:#fff; }
.audit-meta { display:flex; flex-wrap:wrap; gap:10px 24px; align-items:baseline; }
.audit-meta strong { color:#23466e; }
.audit-meta span { font-size:14px; color:#526579; }
.audit-reason { margin:12px 0 16px; white-space:pre-wrap; overflow-wrap:anywhere; }
.audit-diff-table { width:100%; min-width:540px; table-layout:fixed; }
.audit-diff-table th:first-child { width:28%; }
.audit-diff-table td,.audit-diff-table th { white-space:pre-wrap; overflow-wrap:anywhere; }
.audit-diff-table .audit-before { background:#f5f7fa; color:#526579; }
.audit-diff-table .audit-after { background:#edf7ef; color:#234c32; font-weight:600; }
.audit-original { margin-top:16px; }
details summary { cursor:pointer; padding:8px 0; font-size:16px; }
.audit-original pre { max-height:420px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.65; background:#f4f6fa; padding:16px; border-radius:8px; }
.settlement-line-form { margin-top:16px; max-width:700px; }
.page-heading,.filter-actions,.session-controls { flex-wrap:wrap; }
@media(max-width:680px) {
 .audit-list,.audit-card { padding:16px; }
 .audit-meta { display:block; }
 .audit-meta span { display:block; margin-top:6px; }
 h1 { font-size:24px; }
 .content { padding:20px 14px; }
 .account-form input:not([type=checkbox]),.account-form select { font-size:16px; min-height:46px; }
}

/*2026-10-03 장승호 - 기존 세부 선택자의 작은 글씨도 본문/보조 기준에 맞춤*/
.detail-grid dd,.project-details dd,.project-name,.employee-name,.company-stat-info strong,.team-stat,.project-tags,.project-card h3 { font-size:16px; }
.detail-grid dt,.project-details dt,.project-code,.code-cell,.type-badge,.back-link,.connection-banner p,.connection-help p,.alert p,.app-footer,.stat-count span,.team-stat strong span,.metric-value span { font-size:14px; }
.sidebar { overflow-y:auto; }

/*2026-10-03 장승호 - 정렬 헤더와 정보/변경 이력 탭, 모바일 줄바꿈 지원*/
.sort-link { display:inline-flex;gap:.4rem;align-items:center;color:inherit;text-decoration:none;white-space:nowrap; }
.sort-link:hover,.sort-link:focus-visible { color:var(--primary,#2456a6);text-decoration:underline; }
.record-tabs { display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem; }
.record-tab { display:inline-flex;padding:.7rem 1.1rem;border:1px solid #cdd8e5;border-radius:8px;text-decoration:none;color:#334155;background:#fff; }
.record-tab.selected { color:#fff;background:#2456a6;border-color:#2456a6;font-weight:700; }

/*2026-10-04 장승호 - 업무공간·설정 공통 작업 배치와 조회·펼치기 가시성*/
.page-heading { display:block; margin-bottom:20px; }
.page-heading > .button,.page-heading > .filter-actions { margin:14px 0 0; }
.page-heading .page-mode { display:none; }
.page-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:16px 0 20px; }
.button,.record-tab { gap:8px; line-height:1.4; white-space:normal; text-align:center; }
.button:focus-visible,.record-tab:focus-visible,.text-link:focus-visible,summary:focus-visible { outline:3px solid #80a8ed; outline-offset:3px; }
.text-link,.employee-name { text-decoration:underline; text-underline-offset:4px; }
.detail-link { font-weight:700; padding:5px 0; }
.filter-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ui-query-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; max-width:none; }
.ui-query-form label { display:flex; flex-direction:column; gap:7px; font-weight:600; }
.ui-query-form input,.ui-query-form select,.ui-query-form textarea { width:100%; min-height:44px; padding:10px 12px; border:1px solid #cad3df; border-radius:8px; background:#fff; font:inherit; }
.ui-query-form .filter-actions,.ui-query-form .query-help,.ui-query-form .validation-summary { grid-column:1 / -1; margin:0; }
.ui-query-form .query-wide { grid-column:span 2; }
.filter-panel .account-form { max-width:none; }
.panel > form.account-form:not(.ui-query-form) { padding:20px; }
.panel > h2,.panel > p { margin-left:24px; margin-right:24px; }
.panel > .panel-heading h2,.panel > .panel-heading p { margin-left:0; margin-right:0; }
.panel > details { margin:16px 24px 24px; }
details > summary { padding:13px 16px; margin:8px 0 14px; background:#eef4ff; border:1px solid #b8cbea; border-radius:8px; color:#1d4d91; font-weight:700; }
details[open] > summary { background:#e2edff; border-color:#7f9fcf; }
.legacy-contracts > summary { margin:0 0 16px; }
.legacy-contracts { padding:20px; }
.project-workspace-tabs { padding:14px; background:#eaf0f8; border:1px solid #d5e0ee; border-radius:10px; }
.history-row-actions { display:flex; flex-wrap:wrap; gap:8px 16px; margin:8px 0; }
.project-history-name { display:block; overflow-wrap:anywhere; }
.metric-grid-team { grid-template-columns:repeat(3,minmax(0,1fr)); }
.dashboard-grid-team { grid-template-columns:1fr; }
.period-picker { align-self:end; }
.period-calendar { border:1px solid #b8cbea; border-radius:10px; padding:16px; background:#f8fbff; margin-top:10px; }
.period-calendar[hidden] { display:none; }
.calendar-year { display:grid; grid-template-columns:44px minmax(100px,1fr) 44px; gap:8px; }
.calendar-year .button { padding:8px; }
.calendar-months { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:12px 0; }
.calendar-months .button { padding:8px; }
.project-details,.project-tags,.panel-heading { overflow-wrap:anywhere; }
.table-scroll table { width:100%; }
.employee-table td,.table-scroll td { overflow-wrap:anywhere; }
.nav-link.current,.nav-link[aria-current=page] { background:#e6efff; color:#1c4d94; font-weight:700; }
@media(max-width:1100px) { .ui-query-form,.filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) {
 .ui-query-form,.filter-fields,.metric-grid-team { grid-template-columns:1fr; }
 .ui-query-form .query-wide { grid-column:auto; }
 .page-actions .button,.page-heading > .button { max-width:100%; }
 .project-workspace-tabs { gap:8px; padding:10px; }
 .record-tab { flex:1 1 140px; justify-content:center; }
 .panel > h2,.panel > p { margin-left:16px; margin-right:16px; }
 .panel > details { margin:12px 16px 16px; }
}

/*2026-10-04 장승호 - 필터·배지 보조 글씨와 좁은 제목 영역 줄바꿈 보완*/
.filter-fields label,.filter-field label { font-size:16px; }
.company-badge,.count-badge { font-size:14px; }
.panel-heading { flex-wrap:wrap; }
.subtle-label { white-space:normal; }

/*2026-10-04 장승호 - 다중 열 표는 내부 가로 스크롤, 체크 입력은 한 줄 배치*/
.table-scroll table:has(thead th:nth-child(5)) { min-width:900px; }
.employee-form-grid .check-label { flex-direction:row; flex-wrap:wrap; align-items:center; }
.employee-form-grid .check-label small { flex-basis:100%; }
.app-header { min-height:76px; height:auto; padding-top:12px; padding-bottom:12px; flex-wrap:wrap; }
.breadcrumb { min-width:0; flex-wrap:wrap; }
@media(max-width:720px) { .app-header { min-height:66px; }.breadcrumb { flex:1 1 220px; }.session-controls { margin-left:auto; } }

/*2026-10-04 장승호 - 저장 폼의 메모·비활성 그룹 가독성과 모바일 로그인 표시*/
.account-form textarea { width:100%; min-height:80px; padding:10px 12px; border:1px solid #cad3df; border-radius:8px; font:inherit; resize:vertical; }
.account-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.account-form fieldset:disabled { opacity:.8; }
.session-controls span { max-width:none; overflow-wrap:anywhere; }
@media(max-width:720px) { .session-controls { width:100%; justify-content:flex-end; } }

/*2026-10-04 장승호 - 단독 조회 버튼 높이와 패널 제목 간격 통일*/
.ui-query-form > .button { justify-self:start; align-self:end; min-height:44px; }
.panel > h2 { margin-top:20px; margin-bottom:16px; }
.panel > p { margin-top:12px; margin-bottom:16px; }
.section-title { margin:0 0 16px; }

/*2026-10-04 장승호 - 업무별 체크박스 행·열 가독성 및 키보드 포커스*/
.permission-table th{white-space:nowrap}.permission-table td{min-width:145px}.permission-table .check-label{display:flex;align-items:center;gap:8px;font-size:.88rem}.permission-table input[type=checkbox]{width:19px;height:19px;accent-color:var(--primary,#2563eb)}.permission-table input:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.permission-table tbody tr:focus-within{background:#eff6ff}

.permission-help{padding:16px 24px;margin:0}.permission-save{padding:24px}.permission-scroll-note{display:none;padding:0 20px;color:#64748b;font-size:.85rem}@media(max-width:700px){.permission-help,.permission-save{padding:20px}.permission-scroll-note{display:block}}

/*2026-10-04 장승호 - 권한 이력은 건별 메타/사유/추가·해제를 구분, 전체 전후는 펼침 조회*/
.permission-audit-list{padding:0 24px 24px;display:grid;gap:18px}.permission-audit-entry{border:1px solid #d9e1ec;border-radius:12px;padding:20px;min-width:0;color:#25364a}.permission-audit-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.permission-audit-meta{display:flex;gap:10px 20px;flex-wrap:wrap;align-items:center;font-size:15px;line-height:1.6}.permission-audit-meta time{font-weight:600;white-space:nowrap}.permission-audit-meta strong{margin-left:8px}.permission-audit-counts{display:flex;gap:8px;flex-wrap:wrap}.permission-audit-counts>span{border-radius:6px;padding:5px 10px;font-size:14px;font-weight:600}.permission-count-added{background:#eaf6ef;color:#17623b}.permission-count-removed{background:#fff0ee;color:#a8382c}.permission-audit-reason{margin:16px 0;padding:12px 14px;background:#f5f7fb;border-radius:8px;display:flex;align-items:flex-start;gap:16px;font-size:15px;line-height:1.6}.permission-audit-reason>strong{flex:0 0 auto}.permission-audit-reason p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.permission-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.permission-diff{min-width:0;border:1px solid #e2e8f0;border-radius:8px;padding:14px}.permission-diff h3{font-size:15px;line-height:1.6;margin:0 0 12px}.permission-diff-added h3{color:#17623b}.permission-diff-removed h3{color:#a8382c}.permission-diff ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}.permission-diff li>strong{display:block;margin:0 0 7px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.permission-action-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.permission-action-tags span{display:inline-block;font-size:14px;line-height:1.5;padding:4px 8px;border-radius:5px;background:#eef2f8;color:#25364a;overflow-wrap:anywhere;max-width:100%}.permission-diff-added .permission-action-tags span{background:#eaf6ef;color:#17623b}.permission-diff-removed .permission-action-tags span{background:#fff0ee;color:#a8382c}.permission-diff-empty,.permission-audit-nochange{font-size:14px;line-height:1.6;color:#5a6b81;margin:0}.permission-audit-nochange{margin-top:12px}.permission-audit-details{margin-top:16px;border-top:1px solid #e2e8f0;padding-top:14px}.permission-audit-details summary{cursor:pointer;font-size:15px;font-weight:600;color:#305fc2;line-height:1.6}.permission-audit-details summary:focus-visible{outline:3px solid #93c5fd;outline-offset:4px;border-radius:4px}.permission-state-table{margin-top:14px}.permission-state-header,.permission-state-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px;padding:12px;border-bottom:1px solid #e2e8f0;font-size:14px;line-height:1.6}.permission-state-header{background:#f5f7fb}.permission-state-row>strong,.permission-state-value{min-width:0;overflow-wrap:anywhere}.permission-history-empty{font-size:15px;margin:0;padding:8px 0}.permission-audit-reason,.permission-audit-meta{overflow-wrap:anywhere}
@media(max-width:700px){.permission-audit-list{padding:0 16px 16px;gap:16px}.permission-audit-entry{padding:16px}.permission-diff-grid{grid-template-columns:1fr}.permission-audit-heading{gap:12px}.permission-audit-meta{flex-direction:column;align-items:flex-start;gap:4px}.permission-audit-reason{flex-direction:column;gap:6px}.permission-state-header{display:none}.permission-state-row{grid-template-columns:1fr;gap:10px;padding:14px 0}.permission-state-value::before{content:attr(data-label);display:block;font-size:13px;color:#5a6b81;margin-bottom:6px}}

/*2026-10-04 장승호 - 직접경비 주요 진입 버튼 대비 및 청구 정보/감사 읽기 영역*/
.expense-primary-action { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:14px 0; padding:16px; background:#eff6ff; border:1px solid #bfdbfe; border-radius:10px; }
.action-prominent { min-height:44px; font-weight:700; box-shadow:0 2px 5px #1d4ed826; }
.action-prominent:focus-visible { outline:3px solid #1d4ed8; outline-offset:3px; }
.expense-primary-action small { flex:1; min-width:220px; color:#334155; }
.invoice-form .full-width { grid-column:1 / -1; }
.invoice-allocation-table input:not([type="checkbox"]):not([type="hidden"]) { width:150px; min-width:130px; }
.invoice-allocation-table td small { display:block; margin-top:5px; color:#475569; }
#invoice-allocation-summary { padding:14px 16px; border:1px solid #bfdbfe; border-radius:8px; background:#eff6ff; color:#1e3a8a; font-weight:700; }
.invoice-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.invoice-totals div { padding:16px; border:1px solid #cbd5e1; border-radius:8px; }
.invoice-totals strong { display:block; margin-top:8px; font-size:1.3rem; }
.invoice-origin-details,.invoice-history,.invoice-issue-details { padding:14px; margin:12px 0; border:1px solid #cbd5e1; border-radius:8px; }
.invoice-origin-details summary,.invoice-history summary,.invoice-issue-details summary { cursor:pointer; color:#1e40af; font-weight:700; line-height:1.6; }
.invoice-origin-details summary:focus-visible,.invoice-history summary:focus-visible,.invoice-issue-details summary:focus-visible { outline:3px solid #2563eb; outline-offset:4px; }
.invoice-history pre { overflow:auto; max-height:360px; white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; background:#f1f5f9; }
.preserve-lines { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:700px) { .invoice-totals { grid-template-columns:1fr; } .expense-primary-action .button { width:100%; } .invoice-form .employee-form-grid { grid-template-columns:1fr; } }

/*2026-10-04 장승호 - 청구 폼 카드 내부 입력 여백과 모바일 가로 조회 안내*/
.invoice-form > .panel { padding:24px; }
.invoice-form > .panel > h2 { padding:0; margin:0 0 18px; }
.invoice-form > .panel > p { padding:0; }
.invoice-form .form-actions { margin-top:16px; }
@media(max-width:700px) { .invoice-form > .panel { padding:18px; } }

/*2026-10-04 장승호 - 2단 업무 트리와 계약 연결 요약, 좁은 화면에서 표만 가로 이동*/
.sidebar .nav-group { margin:5px 0; }
/*2026-10-04 장승호 - 일반 본문 summary의 밝은 배경을 재정의해 사이드바 대비 확보*/
/*.sidebar .nav-group > summary { display:flex;align-items:center;gap:10px;padding:12px 10px;color:#e5edf7;font-size:14px;font-weight:700;border-radius:8px;cursor:pointer;list-style:none; }*/
.sidebar .nav-group > summary { background:#203650;border:1px solid #415774;margin:4px 0 8px;display:flex;align-items:center;gap:10px;padding:12px 10px;color:#e5edf7;font-size:14px;font-weight:700;border-radius:8px;cursor:pointer;list-style:none; }
.sidebar .nav-group[open] > summary { background:#294969;border-color:#597a9e;color:#ffffff; }
.sidebar .nav-group > summary::-webkit-details-marker { display:none; }
.sidebar .nav-group > summary::before { content:"›";font-size:20px;line-height:1;transition:transform .15s; }
.sidebar .nav-group[open] > summary::before { transform:rotate(90deg); }
.sidebar .nav-group > summary:hover { background:#263d59; }
.sidebar .nav-group > summary:focus-visible { outline:2px solid #9fc8ff;outline-offset:2px; }
.sidebar .nav-children { margin:0 0 8px 19px;padding-left:7px;border-left:1px solid #4d6480; }
.sidebar .nav-children .nav-link { margin:3px 0;padding:10px 9px;font-size:13px;line-height:1.5;white-space:normal; }
.workflow-overview { display:flex;flex-wrap:wrap;gap:10px;align-items:center; }
.workflow-overview span { padding:8px 12px;border-radius:8px;background:#edf3fa;color:#223c57; }
.workflow-contract { background:#f5f8fc;border:1px solid #d5e1ee;border-radius:8px;padding:14px;margin:12px 0; }
.workflow-contract p { margin:6px 0;overflow-wrap:anywhere; }
.expense-contract-number,.expense-contract-name { display:block;min-width:160px;overflow-wrap:anywhere; }
.expense-link-select { max-width:360px;min-width:220px; }
.workflow-status { font-weight:700;color:#245da0; }

/*2026-10-04 장승호 - 프로젝트 입력·계약·정산 화면 폭/간격 통일 및 금액 가독성 개선 */
.project-workspace { width:100%; max-width:1440px; }
.project-workspace .employee-edit-panel, .project-workspace .account-form { width:100%; max-width:none; margin-left:0; margin-right:0; }
.project-workspace .employee-edit-panel { padding:24px; }
.project-workspace .panel { margin-left:0; margin-right:0; }
.project-workspace label { font-size:14px; }
.project-workspace .form-section-title { margin-top:18px; padding-top:18px; border-top:1px solid #dce3ee; }
.project-workspace .page-actions { margin:0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.project-workspace .panel-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.finance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.finance-summary>div { background:#f4f7fc; border:1px solid #dce5f3; border-radius:8px; padding:16px; }
.finance-summary dt { color:#465976; font-size:14px; }
.finance-summary dd { margin:8px 0 0; font-size:22px; font-weight:700; color:#183766; font-variant-numeric:tabular-nums; }
.project-workspace textarea { min-height:64px; }
.project-workspace table .money-column { text-align:right; font-variant-numeric:tabular-nums; }
.field-note, .headcount-note { color:#435570; line-height:1.6; font-size:14px; }
.headcount-note { background:#eef4ff; padding:10px 14px; border-radius:6px; }
.contract-total-option { padding:16px; border:1px solid #dce3ee; border-radius:8px; margin:16px 0; }
.eligibility-matrix th, .eligibility-matrix td { vertical-align:middle; }
.eligibility-matrix td small { display:block; margin-top:5px; }
.compact-button { font-size:12px; padding:6px 9px; min-height:30px; }
.batch-selection-count { font-size:18px; font-weight:700; color:#234e98; }
.revision-people-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0; }
.revision-people-grid label { padding:12px; border:1px solid #dce3ee; border-radius:6px; }
.revision-history { margin-top:12px; }
[hidden] { display:none !important; }
@media(max-width:760px) {
 .finance-summary,.revision-people-grid { grid-template-columns:1fr; }
 .project-workspace .employee-edit-panel { padding:16px; }
 .project-workspace .panel-heading .page-actions { width:100%; }
 .project-workspace .finance-summary dd { font-size:20px; }
}

/*2026-10-04 장승호 - 단가 변경의 네 금액 비교*/
.project-workspace .finance-summary-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1000px) { .project-workspace .finance-summary-four { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .project-workspace .finance-summary-four { grid-template-columns:1fr; } }

/*2026-10-04 장승호 - 일괄 대상/수정계약 입력과 체크박스 배치 통일*/
.project-workspace input[type=checkbox] { width:19px; height:19px; min-height:0; padding:0; flex:0 0 19px; accent-color:#2f64d8; }
.project-workspace .batch-eligibility-form { margin:0; gap:0; }
.project-workspace .batch-eligibility-form > .panel { padding:24px; }
.project-workspace .batch-eligibility-form > .table-panel { padding:0; }
.project-workspace .batch-eligibility-form > .panel > h2, .project-workspace .batch-eligibility-form > .panel > p { margin-left:0; margin-right:0; }
.project-workspace .batch-eligibility-form > .panel > h2 { margin-top:0; }
.project-workspace .batch-eligibility-form > .table-panel > p { margin-left:24px; margin-right:24px; }
.project-workspace .eligibility-matrix .check-label { display:flex; flex-direction:row; align-items:center; gap:8px; white-space:nowrap; }
.project-workspace .eligibility-matrix td small { display:block; font-size:13px; color:#61738b; margin-top:5px; }
.project-workspace .revision-people-grid .check-label { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:8px; padding:12px; border:1px solid #dbe2ec; border-radius:8px; }
.project-workspace .revision-people-grid .check-label small { flex-basis:100%; }
.project-workspace fieldset.panel { border:1px solid #dbe2ec; padding:20px; margin:10px 0; }
@media (max-width:760px) { .project-workspace .batch-eligibility-form > .panel { padding:16px; } .project-workspace .batch-eligibility-form > .table-panel { padding:0; } }

/*2026-10-04 장승호 - 인원별 경비 항목과 청구 조건 구역 표시*/
.expense-item-badge { display: inline-block; padding: .25rem .55rem; margin: .15rem .3rem .15rem 0; border: 1px solid #b8c7db; border-radius: .5rem; background: #f0f5fc; color: #193b68; }
.billing-settings { border: 0; padding: 0; margin: 0; min-width: 0; }
.billing-settings:disabled { opacity: 1; }
.billing-settings:disabled input, .billing-settings:disabled select { color: #34445c; background: #edf1f6; }
.eligibility-matrix [data-batch-person] { flex: none; width: 1.15rem; height: 1.15rem; }

/*2026-10-04 장승호 - 청구 계획의 입력·제목 여백 정렬, 중도 도입 설정은 펼치기 방식*/
.project-workspace .billing-plan-form > .panel { padding:24px; }
.project-workspace .billing-plan-form > .panel > h2, .project-workspace .billing-plan-form > .panel > p { margin-left:0; margin-right:0; }
.project-workspace .billing-plan-form > .panel > h2 { margin-top:0; }
.project-workspace .billing-plan-form > .panel > .panel-heading { padding:0 0 18px; min-height:0; margin-bottom:18px; }
.monthly-migration summary { cursor:pointer; font-weight:700; color:#234879; padding:4px 0; }
.monthly-migration[open] summary { margin-bottom:20px; }
@media(max-width:760px) { .project-workspace .billing-plan-form > .panel { padding:16px; } }

/*2026-10-04 장승호 - 항목 증가/작은 화면에서도 경비 선택 헤더 겹침 방지*/
.project-workspace .eligibility-matrix th:first-child { min-width:190px; }
.project-workspace .eligibility-matrix th:not(:first-child) { min-width:180px; }
.project-workspace .eligibility-matrix th .compact-button { display:block; margin-top:6px; white-space:nowrap; }
.expense-eligibility-list th:first-child { min-width:140px; }
.expense-eligibility-list th:nth-child(3) { min-width:215px; }
.expense-eligibility-list td:nth-child(3) { white-space:nowrap; }

/*2026-10-04 장승호 - 입사일 가독성·반응형 도움말*/
.employee-table .employee-hire-date{font-size:14px;color:#26374d;min-width:104px}
.ui-help{display:inline-block;position:relative;font-size:14px;font-weight:400;vertical-align:middle}
.ui-help-button{border:1px solid #62748a;border-radius:50%;background:#fff;color:#234461;width:24px;height:24px;cursor:pointer;padding:0;font-weight:700}
.ui-help-content{position:absolute;z-index:50;left:0;top:30px;width:min(320px,65vw);padding:14px;background:#fff;border:1px solid #b8c6d5;border-radius:8px;box-shadow:0 8px 24px #20344d25;line-height:1.65;color:#26374d;white-space:normal}
.ui-help-content[hidden]{display:none}
.ui-help-close{display:block;margin-top:8px;background:#eff3f8;border:1px solid #b8c6d5;border-radius:4px;padding:4px 10px;cursor:pointer}
.usage-guide{margin:12px 0;line-height:1.7}.usage-guide summary{cursor:pointer;font-weight:600}
.candidate-detail{min-width:260px}.candidate-detail p{margin:4px 0}

/*2026-10-04 장승호 - 대기 인원 관리 목적별 링크 간격*/
.proposal-actions small{display:block;margin-top:6px}

/*2026-10-04 장승호 - 소싱 현단계와 프로젝트 작업 확인 모바일 배치*/
.sourcing-stages { display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:.5rem 0;font-size:.78rem; }
.sourcing-stages li { padding:.3rem .45rem;border:1px solid #cbd5e1;border-radius:.4rem;color:#64748b;background:#f8fafc; }
.sourcing-stages .is-earlier { color:#334155;background:#e2e8f0; }
.sourcing-stages .is-current { color:#fff;background:#1d4ed8;border-color:#1d4ed8; }
.sourcing-stages strong { margin-left:.3rem;font-size:.72rem; }
.project-status-dialog { width:min(92vw,640px);max-height:90vh;border:1px solid #cbd5e1;border-radius:.75rem;padding:1.5rem; }
.project-status-dialog::backdrop { background:rgba(15,23,42,.5); }
.project-lifecycle-actions { flex-wrap:wrap; }
#customer-contact-results .button { display:block;margin:.5rem 0;white-space:normal;text-align:left; }

/*2026-10-04 장승호 - 수금 조회 여백과 금액/기한 가독성, 모바일 표는 내부 스크롤*/
.receipt-filter-panel { padding:20px; }
.receipt-finance-table th,.receipt-finance-table .receipt-money,.receipt-finance-table .receipt-date,.receipt-finance-table .receipt-state { white-space:nowrap; }
.receipt-finance-table td { vertical-align:top; }
.receipt-finance-table .badge { display:block; font-size:14px; color:#526582; margin-top:5px; }

/*2026-10-05 장승호 - 수금 관리 버튼 및 직접 입력 배분 열 가시성 개선*/
.receipt-manage-button { white-space:nowrap;background:#eaf1ff;border-color:#b6c9ee;color:#17458e; }
.receipt-candidate-filters { display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin:20px 0 12px; }
.receipt-candidate-filters label { display:flex;flex-direction:column;gap:6px; }
.receipt-candidate-filters select { max-width:480px; }
.receipt-finance-table th small { display:block;margin-top:6px;font-weight:400;font-size:14px;color:#526582; }
.receipt-finance-table .receipt-allocation-heading,.receipt-finance-table .receipt-allocation-cell { background:#edf4ff; }
.receipt-allocation-input { min-width:170px;border:2px solid #5988cf;background:#fff; }
.receipt-finance-table tr[hidden] { display:none; }
@media(max-width:600px) { .receipt-candidate-filters label,.receipt-candidate-filters select { width:100%;max-width:100%; } }

/*2026-10-05 장승호 - 검수 처리 탭과 공통 사유 영역, 모바일 버튼 줄바꿈*/
.collection-tab-list button { font:inherit;cursor:pointer;background:transparent; }
.collection-common-actions { border-top:1px solid #d7dfeb;margin-top:24px;padding-top:20px; }
[data-collection-panel][hidden] { display:none; }
.collection-tab-list { flex-wrap:wrap; }

/*2026-10-05 장승호 - 연결 흐름 단계와 여러 연결 원본을 작은 화면에서도 구분*/
.finance-flow-nav { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
/*.finance-flow-record { border-top:1px solid #dce3ed; padding:1rem 0; }*/
/*2026-10-05 장승호 - 연결 단계의 내부 여백과 표 가독성 보완*/
.finance-flow-record { border-top:1px solid #dce3ed; padding:1rem 1.5rem; }
.finance-flow-record h3 { margin:.3rem 0; }
[id^="flow-"] { scroll-margin-top:1rem; }
[id^="flow-"] table small { display:block; color:#60748d; margin-top:.25rem; }

[id^="flow-"] table { min-width:1050px; }
[id^="flow-"] table th,[id^="flow-"] table td { white-space:nowrap; }
#flow-origin > .button { margin-left:24px; }
@media(max-width:720px) { .finance-flow-record { padding:1rem; } #flow-origin > .button { margin-left:16px; } }

/*2026-10-06 장승호 - 경비 항목명 가독성 확대와 기간별 고객 청구단가 표시*/
.freelancer-expense-item { display:block; margin-top:6px; font-size:16px; line-height:1.6; font-weight:700; color:#26374d; }
.freelancer-customer-billing { min-width:230px; }
.history-rate-period + .history-rate-period { border-top:1px solid #dce3ec; padding-top:10px; margin-top:10px; }
.history-rate-unit { display:block; font-size:14px; line-height:1.6; font-weight:400; color:#465976; margin-top:4px; }

/*2026-10-06 장승호 - 직원 화면 수정·조회 버튼의 대비·크기·여백 및 투입 기간 가독성 보완*/
.employee-overview .button,.employee-directory .button,.employee-history .button { min-height:44px; font-size:15px; font-weight:700; }
.employee-overview .button-view,.employee-directory .button-view { background:#eaf1ff; color:#214d91; border-color:#a9bfdf; }
.employee-overview .button-view:hover,.employee-directory .button-view:hover { background:#dbe8ff; border-color:#648ac1; }
.employee-overview .button:focus-visible,.employee-directory .button:focus-visible,.employee-history .button:focus-visible,.employee-history .record-tab:focus-visible { outline:3px solid #2c62c4; outline-offset:3px; }
.employee-overview .filter-actions { gap:12px; margin-bottom:18px; }
.employee-overview .date-cell,.employee-overview .employee-summary td { font-size:15px; color:#26374d; }
.employee-overview .employee-summary .cell-secondary { font-size:14px; }
.employee-history .record-tab { min-height:44px; font-size:15px; font-weight:700; }
.employee-history .record-tab:not(.selected) { background:#eaf1ff; color:#214d91; border-color:#a9bfdf; }
.employee-back-button { min-height:44px; margin-bottom:18px; background:#eaf1ff; color:#214d91; border-color:#a9bfdf; font-size:15px; font-weight:700; }
.employee-back-button:hover { background:#dbe8ff; border-color:#648ac1; }
.employee-back-button:focus-visible { outline:3px solid #2c62c4; outline-offset:3px; }
.employee-directory .employee-name { font-size:15px; color:#214d91; text-decoration:underline; text-underline-offset:3px; }
.employee-history .button-secondary { background:#eaf1ff; color:#214d91; border-color:#a9bfdf; }
.employee-history .button-secondary:hover { background:#dbe8ff; border-color:#648ac1; }

/*2026-10-06 장승호 - 프로젝트 조회 전용 목록·투입 펼치기·가시성, 다른 화면 레이아웃 유지*/
.project-directory-list { display:grid; gap:14px; padding:18px; }
.project-directory-card { border:1px solid #d6e0ec; border-radius:12px; padding:18px; background:#fff; }
.project-directory-title { display:flex; justify-content:space-between; align-items:start; gap:14px; }
.project-directory-title h3 { margin:5px 0 12px; font-size:18px; line-height:1.5; color:#203a5b; overflow-wrap:anywhere; }
.project-directory-meta { display:flex; flex-wrap:wrap; gap:8px 20px; color:#334155; font-size:14px; }
.project-directory-meta strong { color:#475569; margin-right:5px; }
.project-directory .sourcing-stages { margin:14px 0; font-size:14px; }
.project-directory .sourcing-stages li { padding:7px 10px; }
.project-directory .sourcing-stages strong { font-size:13px; }
.project-directory-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:14px 0; }
.deployment-count { display:flex; flex-wrap:wrap; gap:8px 14px; margin-right:auto; color:#334155; font-size:14px; }
.deployment-count strong { color:#214d91; }
.project-directory .button { min-height:44px; font-size:15px; }
.project-directory .button-view { background:#eaf1ff; color:#214d91; border:1px solid #a9bfdf; }
.project-directory .button-view:hover { background:#dce8ff; border-color:#718fc3; }
.project-deployment-details { border-top:1px solid #e3eaf3; padding-top:12px; }
.project-deployment-details > summary { width:fit-content; min-height:44px; padding:10px 14px; cursor:pointer; border:1px solid #a9bfdf; border-radius:8px; background:#eaf1ff; color:#214d91; font-size:15px; font-weight:700; }
.project-deployment-details > summary span { font-weight:400; margin-left:8px; }
.project-deployment-details[open] > summary { background:#dce8ff; }
.project-deployment-body { padding-top:14px; }
.project-directory .deployment-period { font-size:14px; white-space:nowrap; }
.project-directory .status-badge { font-size:13px; }
.project-directory .status-period_ended,.project-directory .status-completed,.project-directory .deployment-ended { background:#eaf1ff; color:#214d91; }
.project-directory .status-cancelled,.project-directory .deployment-cancelled { background:#fff1f2; color:#9f1239; }
.project-directory .status-on_hold,.project-directory .deployment-on_hold,.project-directory .deployment-inactive { background:#fff7ed; color:#9a3412; }
.project-directory .deployment-current { background:#ecfdf5; color:#065f46; }
.project-directory .deployment-upcoming { background:#eff6ff; color:#1e40af; }
.project-directory .button:focus-visible,.project-deployment-details > summary:focus-visible { outline:3px solid #315cb0; outline-offset:3px; }
.sourcing-stage-note { color:#475569; font-size:13px; margin:8px 0; }
@media(max-width:720px) { .project-directory-list { padding:12px; } .project-directory-card { padding:14px; } .project-directory-title { flex-wrap:wrap; } .project-directory-actions .deployment-count { width:100%; } }

/*2026-10-06 장승호 - 대시보드 1차 전용 카드·명확한 버튼·표 가독성, 다른 업무 화면 스타일 유지*/
.dashboard-overview .dashboard-date { margin:0 0 20px; color:#334155; font-size:15px; }
.dashboard-overview .dashboard-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.dashboard-overview .dashboard-metric { display:flex; flex-direction:column; gap:12px; padding:22px; border:1px solid #cbd5e1; border-radius:12px; background:#fff; color:#1e293b; text-decoration:none; }
.dashboard-overview .dashboard-metric strong { color:#1d4ed8; font-size:32px; }
.dashboard-overview .dashboard-metric small { font-size:16px; }
.dashboard-overview .dashboard-metric b { color:#1d4ed8; font-size:14px; }
.dashboard-overview .dashboard-panel { margin-bottom:24px; }
.dashboard-overview .button { min-height:44px; font-size:15px; white-space:nowrap; }
.dashboard-overview .button-primary { background:#1d4ed8; border-color:#1d4ed8; color:#fff; }
.dashboard-overview .button-view { background:#eff6ff; border:1px solid #93c5fd; color:#1e40af; }
.dashboard-overview .dashboard-state-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 24px; }
.dashboard-overview .dashboard-state-grid > a { display:flex; justify-content:space-between; gap:10px; padding:15px; border:1px solid #bfdbfe; border-radius:8px; background:#eff6ff; color:#1e40af; font-weight:600; text-decoration:none; }
.dashboard-overview .dashboard-project-filter { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:16px 24px; }
.dashboard-overview .dashboard-project-filter select { min-height:44px; min-width:160px; border:1px solid #94a3b8; border-radius:6px; background:white; color:#1e293b; padding:8px; }
.dashboard-overview .dashboard-note,.dashboard-overview .dashboard-empty { margin:16px 24px; color:#475569; line-height:1.7; }
.dashboard-overview .dashboard-status { display:inline-block; padding:5px 10px; border-radius:6px; background:#e0e7ff; color:#312e81; font-weight:700; white-space:nowrap; }
.dashboard-overview .employee-table th,.dashboard-overview .employee-table td { font-size:15px; }
.dashboard-overview .dashboard-organization { margin:0 0 20px; padding:20px; }
.dashboard-overview .dashboard-organization summary { cursor:pointer; color:#1e40af; font-size:16px; font-weight:700; }
.dashboard-overview a:hover { border-color:#2563eb; }
.dashboard-overview a:focus-visible,.dashboard-overview button:focus-visible,.dashboard-overview select:focus-visible,.dashboard-overview summary:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
@media(max-width:1000px) { .dashboard-overview .dashboard-metrics,.dashboard-overview .dashboard-state-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .dashboard-overview .dashboard-metrics,.dashboard-overview .dashboard-state-grid { grid-template-columns:1fr; } .dashboard-overview .panel-heading { flex-wrap:wrap; gap:12px; } }

/*2026-10-06 장승호 - 전체/정산 현황 전환과 처리 대기 카드, 기존 화면과 구분되는 대시보드 전용 스타일*/
.dashboard-overview .dashboard-tabs { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 24px; }
.dashboard-overview .dashboard-tabs a { min-width:140px; justify-content:center; text-decoration:none; }
.dashboard-overview .dashboard-finance-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 24px; }
.dashboard-overview .dashboard-finance-card { padding:20px; border:1px solid #cbd5e1; border-radius:12px; background:#fff; }
.dashboard-overview .dashboard-finance-card.is-selected { border:2px solid #2563eb; }
.dashboard-overview .dashboard-finance-card h2 { font-size:18px; color:#1e293b; margin:0 0 8px; }
.dashboard-overview .dashboard-finance-card > p { color:#475569; font-size:14px; line-height:1.6; }
.dashboard-overview .dashboard-queue-count { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin:14px 0; padding:14px; border-radius:8px; background:#eff6ff; color:#1e40af; text-decoration:none; }
.dashboard-overview .dashboard-queue-count strong { font-size:24px; }
.dashboard-overview .dashboard-queue-count b { font-size:14px; }
.dashboard-overview .dashboard-queue-amount strong { color:#1e293b; }
.dashboard-overview .dashboard-queue-previous,.dashboard-overview .dashboard-queue-undated { display:block; min-height:44px; padding:10px 12px; border:1px solid #fcd34d; border-radius:6px; background:#fffbeb; color:#78350f; font-size:15px; text-decoration:none; }
.dashboard-overview .dashboard-queue-undated { margin-top:10px; }
.dashboard-overview .dashboard-queue-pages { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:12px; margin:20px 24px; }
.dashboard-overview .dashboard-finance input[type=month] { min-height:44px; min-width:160px; padding:8px; border:1px solid #94a3b8; border-radius:6px; color:#1e293b; background:#fff; }
.dashboard-overview input:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
@media(max-width:1100px) { .dashboard-overview .dashboard-finance-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .dashboard-overview .dashboard-finance-cards { grid-template-columns:1fr; } }

/*2026-10-06 장승호 - 소싱 저장 이후 계약 체결 탭과 이력 가시성*/
.sourcing-contract-ready { border:2px solid #dc2626; color:#991b1b; }
.sourcing-tabs [aria-disabled="true"] { opacity:.6; }
.sourcing-json { white-space:pre-wrap; overflow-wrap:anywhere; max-height:30rem; overflow:auto; }

/*2026-10-06 장승호 - 프로젝트 목록의 상세/삭제 작업 분리와 조건부 확인창 가독성*/
.project-list-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; min-width:180px; }
.project-list-actions .button { white-space:nowrap; }
.project-list-actions .project-delete-action { color:#b42318; background:#fff; border:1px solid #b42318; }
.project-list-actions .project-delete-action:hover { color:#8c1c13; background:#fff1f0; border-color:#8c1c13; }
.project-status-dialog fieldset { border:0; padding:0; margin:0; min-width:0; }
.project-status-dialog fieldset[hidden] { display:none; }
.project-status-dialog textarea { width:100%; min-height:90px; }
.project-status-dialog [data-mm-close]:focus-visible,.project-list-actions .button:focus-visible { outline:3px solid #175cd3; outline-offset:3px; }

/*2026-10-06 장승호 - 목록 화살표는 제목과 함께 표시, 터치·키보드 접근 영역 확보*/
.title-with-back{display:flex;align-items:center;gap:10px;min-width:0}
.title-with-back h1{min-width:0;overflow-wrap:anywhere}
.page-back-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#1d4ed8;font-size:27px;line-height:1;text-decoration:none}
.page-back-link:hover{background:#eff6ff;border-color:#2563eb}
.page-back-link:focus-visible{outline:3px solid #2563eb;outline-offset:3px}

/*2026-10-06 장승호 - 월정산 조회와 변경 이력 탭은 인접 정렬, 좁은 화면은 줄바꿈*/
.settlement-query-row { display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:18px 0; }
.settlement-query-row > .settlement-filter { margin:0;align-items:flex-end; }
.settlement-query-row > .record-tabs { margin:0; }

/*2026-10-06 장승호 - H18 청구 계획 화면만 접기 제목·본문·이동 버튼 여백 통일, 기존 공통 규칙 보존*/
.billing-workspace > .billing-next-step { padding:24px; margin-top:16px; }
.billing-workspace > .billing-next-step > h2 { margin:0; }
.billing-workspace > .billing-next-step > p { margin:16px 0; }
.billing-workspace > .billing-next-step > .button { max-width:100%; white-space:normal; text-align:center; }
.billing-workspace > .billing-fold-panel { margin:16px 0 0; padding:16px 24px; }
.billing-workspace > .billing-plan-form { gap:16px; margin-top:16px; }
.billing-workspace > .billing-plan-form > .panel { margin-top:0; }
.billing-workspace > .billing-plan-form > .billing-fold-panel { padding:16px 24px; }
.billing-workspace .billing-fold-panel > summary { min-height:54px; padding:13px 16px; margin:0; line-height:1.7; font-size:16px; font-weight:700; color:#1d4d91; overflow-wrap:anywhere; }
.billing-workspace .billing-fold-panel[open] > summary { margin-bottom:18px; }
.billing-workspace .billing-fold-panel > p { margin:12px 0 0; }
.billing-workspace .billing-fold-panel > ul { margin:12px 0 0; padding-left:24px; }
@media(max-width:760px) {
 .billing-workspace > .billing-next-step { padding:16px; }
 .billing-workspace > .billing-fold-panel,.billing-workspace > .billing-plan-form > .billing-fold-panel { padding:16px; }
}

/*2026-10-06 장승호 - 자산 선택은 공통 텍스트 입력42px/전체 폭에서 제외, 기존 체크박스 범위 보존*/
.table-scroll input.asset-selection-checkbox[type=checkbox] { width:18px; height:18px; min-width:0; min-height:0; padding:0; margin:0; vertical-align:middle; accent-color:#2f64d8; cursor:pointer; }

/*2026-10-06 장승호 - 자산 이력만 카드/항목별 비교, 날짜와 사용자·긴 프로젝트명 읽기 영역 확보*/
.asset-history-list { min-width:0; }
.asset-history-card { min-width:0; margin:18px 0; padding:20px; }
.asset-history-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; color:#526579; font-size:14px; }
.asset-history-meta time { white-space:nowrap; }
.asset-history-kind { display:inline-block; padding:5px 12px; border-radius:7px; background:#eaf1ff; color:#214d91; font-size:16px; }
.asset-history-summary { margin:16px 0 10px; color:#253b58; font-size:18px; font-weight:700; line-height:1.7; overflow-wrap:anywhere; }
.asset-history-reason { margin:0 0 18px; color:#526579; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.asset-history-reason strong { margin-right:10px; }
.asset-history-diff { width:100%; table-layout:fixed; min-width:0; }
.asset-history-diff th:first-child { width:24%; }
.asset-history-diff th,.asset-history-diff td { padding:12px 14px; font-size:15px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.asset-history-diff .asset-history-before { background:#f5f7fa; color:#526579; }
.asset-history-diff .asset-history-after { background:#edf7ef; color:#234c32; font-weight:600; }
.asset-history-closed { margin-top:20px; padding:16px; border:1px solid #d8e1ef; border-radius:8px; background:#f8fafc; }
.asset-history-closed h3 { margin:0 0 14px; font-size:16px; }
.asset-history-closed dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0; }
.asset-history-closed dl>div { min-width:0; }
.asset-history-closed dt { color:#526579; font-size:14px; margin-bottom:4px; }
.asset-history-closed dd { margin:0; color:#253b58; font-size:15px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.asset-history-original { margin-top:18px; }
.asset-history-original summary { font-size:15px; }
.asset-history-original table { margin-top:14px; }
@media(max-width:700px) {
 .asset-history-card { padding:16px; }
 .asset-history-meta { gap:8px 14px; }
 .asset-history-summary { font-size:17px; }
 .asset-history-closed dl { grid-template-columns:1fr; }
 .asset-history-diff,.asset-history-diff tbody { display:block; }
 .asset-history-diff thead { display:none; }
 .asset-history-diff tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; margin:10px 0; border:1px solid #d8e1ef; }
 .asset-history-diff th:first-child { grid-column:1/-1; width:auto; }
 .asset-history-diff td[colspan] { grid-column:1/-1; }
 .asset-history-diff td[data-label]::before { content:attr(data-label); display:block; margin-bottom:6px; font-size:13px; color:#526579; font-weight:400; }
}


/*2026-10-06 장승호 - 자산 이력 카드 기본 접힘/전체 제목 클릭, 전후 표·종료 기록은 접힌 본문 안에 보존*/
.asset-history-card.asset-history-collapsible { padding:0; overflow:hidden; }
.asset-history-fold > .asset-history-fold-toggle { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; padding:18px 20px; margin:0; border:0; border-radius:9px; background:#fff; color:#253b58; list-style:none; cursor:pointer; }
.asset-history-fold > .asset-history-fold-toggle::-webkit-details-marker { display:none; }
.asset-history-fold > .asset-history-fold-toggle:hover { background:#f6f9ff; }
.asset-history-fold > .asset-history-fold-toggle:focus-visible { outline:3px solid #2563eb; outline-offset:-3px; }
.asset-history-fold-heading { display:block; min-width:0; flex:1; }
.asset-history-fold-heading > .asset-history-summary { display:block; margin:10px 0 0; }
.asset-history-fold-state { display:flex; align-items:center; gap:8px; flex:0 0 auto; white-space:nowrap; color:#214d91; font-size:14px; }
.asset-history-fold-arrow { display:inline-block; font-size:26px; line-height:1; }
.asset-history-fold-collapse { display:none; }
.asset-history-fold[open] > .asset-history-fold-toggle { background:#f4f8ff; border-bottom:1px solid #d8e1ef; border-radius:9px 9px 0 0; }
.asset-history-fold[open] > .asset-history-fold-toggle .asset-history-fold-expand { display:none; }
.asset-history-fold[open] > .asset-history-fold-toggle .asset-history-fold-collapse { display:inline; }
.asset-history-fold[open] > .asset-history-fold-toggle .asset-history-fold-arrow { transform:rotate(90deg); }
.asset-history-fold-body { padding:18px 20px 20px; }
@media(max-width:700px) {
 .asset-history-fold > .asset-history-fold-toggle { padding:16px; gap:10px; }
 .asset-history-fold-state { font-size:13px; gap:6px; }
 .asset-history-fold-body { padding:16px; }
}

/*2026-10-07 장승호 - 비상연락망 조회/변경 이력에만 연한 파란 배경·테두리와 클릭/키보드 선택 표시*/
.button.emergency-contact-view { background:#eaf1ff; color:#214d91; border-color:#a9bfdf; font-size:14px; font-weight:700; min-height:42px; }
.button.emergency-contact-view:hover { background:#dbe8ff; border-color:#648ac1; }
.button.emergency-contact-view:focus-visible { background:#dbe8ff; border-color:#648ac1; outline:3px solid #3164d7; outline-offset:3px; }

/*2026-10-07 장승호 - 계정 ID 저장/선택 체크박스는 기존 폼 전체 너비 규칙에서 분리*/
.account-form .account-check,.account-check { display:flex; align-items:center; gap:8px; }
.account-form .account-check input[type="checkbox"],.account-check input[type="checkbox"],input.account-select { width:18px; height:18px; min-height:18px; padding:0; flex:0 0 18px; }
[data-manual-password][hidden] { display:none; }
[data-manual-password] { display:grid; gap:16px; }

/*2026-10-08 장승호 - H68 평가 개설 화면의 체크박스/사유/폼 간격 정리, 다른 화면 입력 스타일 유지*/
.evaluation-settings-form { display:grid; gap:16px; padding:24px; }
.evaluation-settings-form > p { margin:0; }
.evaluation-settings-form .evaluation-check { display:flex; align-items:center; gap:9px; line-height:1.5; cursor:pointer; }
.evaluation-settings-form input[type=checkbox] { width:18px; height:18px; min-height:18px; flex:0 0 18px; margin:0; padding:0; accent-color:var(--primary,#2563eb); }
.evaluation-settings-form .evaluation-reason { display:flex; flex-direction:column; gap:8px; min-width:0; }
.evaluation-settings-form textarea { width:100%; height:88px; min-height:88px; padding:10px 12px; border:1px solid #cad3df; border-radius:8px; background:#fff; font:inherit; line-height:1.5; resize:vertical; }
.evaluation-settings-form .form-actions { display:flex; flex-wrap:wrap; gap:9px; margin:0; }
@media(max-width:680px) { .evaluation-settings-form { padding:18px; } }

/*2026-10-08 장승호 - H69 직무별 평가 항목/세부항목/등록·검토 사유의 화면 전용 스타일*/
.evaluation-profile-form { display:grid; gap:18px; padding:24px; }
.evaluation-profile-form > p { margin:0; }
.evaluation-profile-form .filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.evaluation-items { display:grid; gap:18px; }
.evaluation-profile-form .evaluation-item { display:grid; gap:14px; min-width:0; margin:0; padding:18px; border:1px solid #dce4ef; border-radius:10px; }
.evaluation-item legend { padding:0 8px; font-weight:700; }
.evaluation-item-heading { display:grid; grid-template-columns:minmax(0,1fr) 140px; gap:16px; }
.evaluation-profile-form label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.evaluation-profile-form textarea { width:100%; min-height:88px; padding:10px 12px; border:1px solid #cad3df; border-radius:8px; background:#fff; font:inherit; line-height:1.5; resize:vertical; }
.evaluation-profile-form textarea[readonly] { background:#f7f9fc; }
.evaluation-profile-form .evaluation-detail-list { display:grid; gap:12px; }
.evaluation-profile-form .evaluation-detail { display:flex; align-items:flex-end; gap:10px; }
.evaluation-profile-form .evaluation-detail label { flex:1; }
.evaluation-profile-form .evaluation-detail textarea { min-height:64px; }
.evaluation-profile-form .form-actions { display:flex; flex-wrap:wrap; gap:9px; margin:0; }
#evaluation-template-loader > label { display:flex; flex-direction:column; gap:8px; }
#evaluation-template-status { margin-bottom:0; }
.evaluation-basis { padding:10px 0; }
.evaluation-basis p { margin:5px 0; }
.evaluation-basis ul { margin:8px 0; padding-left:24px; }
.evaluation-definition,.evaluation-basis li { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:680px) { .evaluation-profile-form { padding:18px; } .evaluation-profile-form .filter-fields,.evaluation-item-heading { grid-template-columns:1fr; } .evaluation-profile-form .evaluation-item { padding:14px; } }

/*2026-10-08 장승호 - H70 빨간 표시 위치의 항목 탭, 선택된 내용만 표시하고 모바일 줄바꿈*/
.evaluation-item-tabs { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:14px; border-bottom:1px solid #dce4ef; }
.evaluation-item-tabs[hidden],.evaluation-profile-form .evaluation-item[hidden] { display:none; }
.evaluation-item-tabs .evaluation-item-tab { min-height:42px; max-width:100%; padding:9px 14px; border:1px solid #cad3df; border-radius:8px; background:#fff; color:#365172; font:inherit; cursor:pointer; white-space:normal; overflow-wrap:anywhere; }
.evaluation-item-tabs .evaluation-item-tab[aria-selected="true"] { border-color:var(--primary,#2563eb); background:var(--primary,#2563eb); color:#fff; }
.evaluation-item-tabs .evaluation-item-tab:focus-visible { outline:3px solid #90b3f2; outline-offset:3px; }

/*2026-10-08 장승호 - H71 평가 대상 직원 추가의 체크박스18px/왼쪽 정렬, 기존 화면 스타일 유지*/
.evaluation-roster-form { display:grid; gap:14px; }
.evaluation-roster-list { display:grid; gap:10px; }
.evaluation-roster-list > p { margin:0; }
.evaluation-roster-form .evaluation-roster-check { display:flex; align-items:center; gap:9px; line-height:1.5; cursor:pointer; }
.evaluation-roster-form .evaluation-roster-check input[type=checkbox] { width:18px; height:18px; min-width:18px; min-height:18px; padding:0; margin:0; flex:0 0 18px; accent-color:var(--primary,#2563eb); }
.evaluation-roster-check span { min-width:0; overflow-wrap:anywhere; }
.evaluation-roster-check input:focus-visible { outline:3px solid #90b3f2; outline-offset:3px; }

/*2026-10-08 장승호 - H72 팀 준비 상태/승인 사유와 읽기 폼 스타일*/
.evaluation-team-preparation { padding:16px 0; border-top:1px solid var(--border,#dbe3ef); }
.evaluation-team-preparation h3 { margin:0 0 10px; }
.evaluation-approval-form { display:grid; gap:10px; max-width:900px; }
.evaluation-approval-form label { display:grid; gap:6px; }
.evaluation-approval-form textarea { width:100%; min-height:72px; }
.evaluation-profile-lock { border:0; padding:0; margin:0; min-width:0; display:grid; gap:14px; }

/*2026-10-08 장승호 - H73 일괄 직무 사유/승인 사유를 기존 평가 입력 스타일로 통일*/
.evaluation-approval-form textarea { padding:10px 12px; border:1px solid #cad3df; border-radius:8px; background:#fff; font:inherit; line-height:1.5; resize:vertical; }
.evaluation-jobs-form { margin:20px; }

/*2026-10-08 장승호 - H74 점수 입력/탭은 기존 평가 화면 버튼·사유 스타일과 통일*/
.evaluation-score-summary, .evaluation-score-form { padding: 20px; }
.evaluation-score-form { display: grid; gap: 16px; }
.evaluation-score-form > label, .evaluation-score-item > label { display: grid; gap: 7px; font-weight: 600; }
.evaluation-score-form input[type="number"] { max-width: 240px; padding: 10px 12px; border: 1px solid #cad3df; border-radius: 8px; background: #fff; font: inherit; }
.evaluation-score-form textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid #cad3df; border-radius: 8px; background: #fff; font: inherit; line-height: 1.5; resize: vertical; }
.evaluation-score-item { min-width: 0; margin: 0; padding: 20px; border: 1px solid #d9e1eb; border-radius: 10px; }
.evaluation-score-item legend { padding: 0 8px; font-weight: 700; }
.evaluation-score-item > label { margin-top: 14px; }
.evaluation-score-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 4px; }
.evaluation-score-tabs button { padding: 9px 14px; border: 1px solid #cad3df; border-radius: 8px; background: #fff; color: #334155; font: inherit; cursor: pointer; }
.evaluation-score-tabs button[aria-selected="true"] { background: var(--primary,#2563eb); border-color: var(--primary,#2563eb); color: #fff; font-weight: 700; }
.evaluation-score-tabs button:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
.evaluation-score-item[hidden], .evaluation-score-tabs[hidden] { display: none; }
.evaluation-score-total { padding: 12px 16px; background: #f1f5f9; border-radius: 8px; font-weight: 700; }
.evaluation-score-snapshot { border: 1px solid #cadcf4; border-radius: 8px; padding: 14px; background: #f8fbff; }
.evaluation-score-snapshot summary { cursor: pointer; font-weight: 700; color: #1e4d8c; }

/*2026-10-08 장승호 - H75 평가 화면 전용 상태 배지/보완 안내/사본·이력 표, 기존 CSS 보존*/
.evaluation-score-state { display:inline-block; padding:3px 9px; border:1px solid #cbd5e1; border-radius:6px; font-size:14px; font-weight:700; line-height:1.5; white-space:nowrap; }
.evaluation-score-state-warning { background:#fff4db; color:#774900; border-color:#dbb76d; }
.evaluation-score-state-complete { background:#eaf5ef; color:#21623c; border-color:#a8cdb6; }
.evaluation-score-state-neutral { background:#f1f5f9; color:#42536a; border-color:#cbd5e1; }
.evaluation-score-alert { margin:14px 0; padding:14px 16px; border:1px solid #dbb76d; border-left:4px solid #c38b23; border-radius:8px; background:#fff8e8; color:#624512; white-space:pre-wrap; overflow-wrap:anywhere; }
.evaluation-score-alert p { margin:8px 0 0; }
.evaluation-score-correction-reason { max-width:360px; white-space:pre-wrap; overflow-wrap:anywhere; color:#774900; }
.evaluation-score-snapshot .table-scroll { margin-top:16px; }
.evaluation-score-info-table { min-width:560px; table-layout:fixed; }
.evaluation-score-info-table th { width:18%; background:#f0f5fc; }
.evaluation-score-items-table { min-width:660px; table-layout:fixed; }
.evaluation-score-items-table th:nth-child(1) { width:25%; }
.evaluation-score-items-table th:nth-child(2),.evaluation-score-items-table th:nth-child(3) { width:12%; }
.evaluation-score-items-table tfoot { background:#eaf1fb; font-weight:700; }
.evaluation-score-info-table th,.evaluation-score-info-table td,.evaluation-score-items-table th,.evaluation-score-items-table td,.evaluation-score-diff-table th,.evaluation-score-diff-table td { white-space:pre-wrap; overflow-wrap:anywhere; padding:10px 12px; }
.evaluation-score-info-table caption,.evaluation-score-items-table caption,.evaluation-score-diff-table caption { padding:8px 0; text-align:left; font-weight:700; color:#344b6b; }
.evaluation-score-note { margin-top:16px; }
.evaluation-score-note p { margin:7px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.evaluation-score-history { padding:16px 20px; }
.evaluation-score-history summary { cursor:pointer; line-height:1.6; }
.evaluation-score-history .table-scroll { margin-top:16px; }
.evaluation-score-diff-table { min-width:660px; table-layout:fixed; }
.evaluation-score-diff-table th:first-child { width:26%; }
.evaluation-score-diff-changed { background:#fff8e8; }
.evaluation-score-diff-marker { display:inline-block; margin-left:5px; padding:1px 5px; border-radius:4px; background:#f4e2b8; color:#774900; font-size:12px; }
@media(max-width:680px) { .evaluation-score-history { padding:14px; } .evaluation-score-alert { padding:12px; } }

/*2026-10-08 장승호 - H76 연간 평가/후보 전용 입력·표, 기존 화면 스타일 유지*/
.evaluation-annual-panel { padding:20px; }
.evaluation-annual-panel .panel-heading { padding:0 0 14px; }
.evaluation-annual-form { display:grid; gap:14px; margin-top:18px; max-width:960px; }
.evaluation-annual-row-form { display:grid; gap:10px; min-width:230px; max-width:380px; margin-bottom:16px; }
.evaluation-annual-form label,.evaluation-annual-row-form label { display:grid; gap:6px; }
.evaluation-annual-form textarea,.evaluation-annual-row-form textarea { width:100%; padding:10px 12px; border:1px solid #cad3df; border-radius:8px; background:#fff; font:inherit; line-height:1.5; resize:vertical; }
.evaluation-annual-form .evaluation-annual-check { display:flex; align-items:center; gap:8px; }
.evaluation-annual-check input[type=checkbox] { width:18px; height:18px; min-height:18px; padding:0; margin:0; flex:0 0 18px; }
.evaluation-annual-table { min-width:1450px; }
.evaluation-annual-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.evaluation-final-grade { display:inline-block; padding:6px 16px; background:#eaf1ff; color:#214d91; border:1px solid #a9bfdf; border-radius:8px; font-size:20px; }
@media(max-width:680px) { .evaluation-annual-panel { padding:16px; } }

/*2026-10-08 장승호 - 과거 참여 편집은 기존 버튼/입력 디자인 사용, 새 행 구분과 전체 너비만 추가*/
.past-participant-row { border:1px solid var(--border,#dbe2ea); border-radius:10px; padding:16px; margin-top:12px; }
.past-participant-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.past-project-wide { grid-column:1 / -1; }

/*2026-10-08 장승호 - H79 참여 이력의 연월 팝업만 축소, 검색 그리드/다른 패널 배치 보존*/
.history-filter-panel { position:relative; z-index:2; overflow:visible; }
.history-filter-panel .period-picker { position:relative; }
.history-filter-panel .period-calendar { position:absolute; top:calc(100% + 8px); right:0; z-index:20; width:min(300px,calc(100vw - 56px)); margin:0; padding:12px; box-shadow:0 8px 24px #24334d24; }
.history-filter-panel .period-calendar .calendar-year { grid-template-columns:36px minmax(80px,1fr) 36px; gap:6px; }
.history-filter-panel .period-calendar .calendar-year input { min-height:36px; padding:6px 8px; }
.history-filter-panel .period-calendar .calendar-months { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:10px 0; }
.history-filter-panel .period-calendar .button { min-height:36px; padding:6px; font-size:13px; }
.history-filter-panel .period-calendar .filter-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
@media(max-width:680px) { .history-filter-panel .period-calendar { left:0; right:auto; } }

/*2026-10-08 장승호 - H80 고정비 금액 카드만 긴 금액 줄바꿈/크기 보완, 기존 대시보드 스타일 유지*/
.recurring-cost-dashboard .dashboard-metric strong { font-size:26px; overflow-wrap:anywhere; }

/*2026-10-08 장승호 - H85 업무 관리 상위/하위 그룹 구분, 최대 3단 탐색과 기존 모바일 폭 유지*/
.sidebar .nav-section { margin:10px 0; }
.sidebar .nav-section > summary { background:#12243d;border-color:#526b89;padding:13px 10px;font-size:15px; }
.sidebar .nav-section[open] > summary { background:#294969;border-color:#7899bc; }
.sidebar .nav-section > .nav-children { margin-left:9px;padding-left:7px; }
.sidebar .nav-section .nav-group > summary { padding:10px 8px;font-size:14px; }
.sidebar .nav-section .nav-group > .nav-children { margin-left:9px;padding-left:7px; }
.sidebar .nav-section .nav-link { padding:9px 7px;font-size:14px;overflow-wrap:anywhere; }

/*2026-10-10 장승호 - H95 Fix1 공통 한 줄 입력의 고정42px와16px 글자 충돌 해소, 체크/라디오/숨김 입력 제외*/
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select{height:auto;min-height:46px;line-height:1.5}
.account-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.account-form select,.ui-query-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.ui-query-form select{height:auto;min-height:48px;line-height:1.5}

/*2026-10-10 장승호 - H95 Fix4 상단 본인 연락처와 이름·로그아웃은 모바일에서도 읽기 쉬운 높이와 줄바꿈 유지*/
.session-controls .session-contact-link { display:inline-flex;align-items:center;gap:7px;min-height:44px;white-space:nowrap;flex:0 0 auto; }
.session-controls .session-contact-link span { font-size:18px; }
.session-controls .session-contact-link[aria-current="page"] { color:#154f94;background:#eaf3ff;border-color:#79a8dc; }
.session-controls .session-user-name { min-width:0;max-width:none;overflow-wrap:anywhere; }
/*2026-10-10 장승호 - H95 Fix4 성공 알림은 녹색, 타 업무 오류 알림 스타일과 독립*/
.approval-success-notice { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin-bottom:18px;border:1px solid #9bd0b0;border-radius:9px;background:#edf9f0;color:#17613a;line-height:1.6; }
.approval-success-notice span { min-width:0;overflow-wrap:anywhere; }
.approval-success-notice button { flex:0 0 36px;min-height:36px;border:1px solid #9bd0b0;border-radius:6px;background:#fff;color:#17613a;font-size:23px;cursor:pointer; }
.approval-success-notice button:focus-visible { outline:3px solid #296fc1;outline-offset:2px; }
.approval-success-notice[hidden] { display:none; }
@media(max-width:720px) { .session-controls .session-contact-link { min-height:44px; }.session-controls .session-user-name { flex:1 1 110px; }.session-controls form { flex:0 0 auto; } }

/*2026-10-10 장승호 - H96 Fix4 이관 확정 전용 입력 여백/확인 강조/사유 전체 폭, 다른 업무 입력 스타일 보존*/
.leave-post-panel > h2 { margin:20px 24px 16px; }
.leave-post-panel .table-wrapper { overflow-x:auto; }
.leave-post-panel table th:first-child,.leave-post-panel table td:first-child { width:32%; }
.leave-post-panel table td { overflow-wrap:anywhere; }
.leave-post-form { display:grid; gap:22px; padding:8px 24px 24px; }
.leave-post-form .leave-post-label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:18px; font-weight:700; color:#25364a; }
.leave-post-required { font-size:14px; font-weight:700; color:#a52f37; }
.leave-post-confirmation { display:grid; gap:12px; min-width:0; padding:20px; border:2px solid #86a9e6; border-radius:10px; background:#edf3ff; }
.leave-post-confirmation p,.leave-post-reason p { margin:0; color:#415570; font-size:15px; line-height:1.65; overflow-wrap:anywhere; }
.leave-post-form select { width:100%; min-height:52px; font-size:16px; font-weight:600; background:#fff; border-color:#86a9e6; }
.leave-post-reason { display:grid; gap:10px; min-width:0; }
.leave-post-form textarea { display:block; width:100%; min-width:0; min-height:144px; padding:12px 14px; border:1px solid #b8c8dc; border-radius:8px; background:#fff; color:var(--text); font:inherit; font-size:16px; line-height:1.6; resize:vertical; }
.leave-post-form textarea::placeholder { color:#61738b; }
.leave-post-form textarea:focus-visible { outline:3px solid #5e92ed; outline-offset:3px; }
.leave-post-form .page-actions { margin:0; }
@media(max-width:680px) { .leave-post-panel > h2 { margin-left:16px; margin-right:16px; }.leave-post-form { padding:8px 16px 20px; gap:18px; }.leave-post-confirmation { padding:16px 12px; }.leave-post-form .page-actions .button { flex:1 1 140px; min-height:48px; } }


/*2026-10-11 장승호 - H97 Fix3 기존 메뉴 CSS 원문은 위에 보존, 화면 폭에 따른 232/210/195px 축소를 공통272px로 재정의*/
:root { --sidebar:272px; }
/*2026-10-11 장승호 - H97 Fix3 세로 스크롤 공간을 항상 확보해 접기/펼치기와 화면 높이 변경 시 내부 폭 유지, 미지원 브라우저는 scroll 대체*/
.sidebar { padding-left:14px; padding-right:14px; overflow-y:scroll; scrollbar-gutter:stable; }
@supports (scrollbar-gutter:stable) { .sidebar { overflow-y:auto; } }
.sidebar > * { flex-shrink:0; }
/*2026-10-11 장승호 - H97 Fix3 메뉴 링크/그룹의 기본48px 높이와24px 행간 통일, 단계별 들여쓰기/색/활성 상태는 기존 유지*/
.sidebar .nav-link,.sidebar .nav-group > summary,.sidebar .nav-section .nav-group > summary { min-height:48px; padding:10px; line-height:24px; white-space:normal; overflow-wrap:anywhere; }
.sidebar .nav-link { gap:10px; font-size:16px; }
.sidebar .nav-children .nav-link { font-size:14px; }
.sidebar .nav-group > summary,.sidebar .nav-section .nav-group > summary { gap:8px; font-size:15px; }
.sidebar .nav-icon { flex:0 0 20px; line-height:24px; }
.sidebar .nav-group > summary::before { flex:0 0 12px; text-align:center; }
/*2026-10-11 장승호 - H97 Fix3 모바일은 본문 위 오버레이 유지, 작은 뷰포트의 닫기 버튼 공간 확보 및 확대된 메뉴 폭과 위치 연결*/
@media(max-width:720px) {
    .sidebar { width:min(var(--sidebar),calc(100vw - 48px)); }
    .nav-open .menu-toggle { left:calc(min(var(--sidebar),calc(100vw - 48px)) + 8px); }
}
