/*
 * 회사관리 › 급여명세서 — C2 검토 스테이션 (.psr-*, 2026-09-30 · 샘플 sample/payslip/c2-review.html 사용자 확정)
 * 월 레일 · 대상자 목록 · 검토 패널(명세서 전월 비교 | 근태 달력·추이·진행) · 연간 표 · 관리자 확정/제외 모달.
 * 규칙 10: 폼 컨트롤은 배경·글자색을 함께. 세그먼트=.ord-seg(보기·필터) · 모달 선택=.ord-choice 공용.
 */
/* 색 토큰 — 페이지(.psr)와 페이지 밖에 붙는 모달(.psr-in-modal·.psr-mbody) 양쪽에 둔다 */
.psr, .psr-in-modal, .psr-mbody { --psr-ch: var(--ord-accent); --psr-ch-d: var(--ord-accent-strong); --psr-ch-l: var(--ord-accent-soft); --psr-band: var(--ord-band); --psr-line: var(--ord-line); --psr-line2: var(--ord-line-soft);
       --psr-bg: var(--ord-surface-2); --psr-tx: var(--ord-text); --psr-mu: var(--ord-text-3); --psr-mu2: var(--ord-text-4); color: var(--psr-tx); }
.psr-head { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.psr-head-t { flex: 1; min-width: 220px; }
.psr-title { font-size: 18px; font-weight: 600; color: var(--ord-text); margin: 0; }
.psr-sub { margin: 4px 0 0; font-size: 12px; color: var(--psr-mu); }
.psr-hint { font-size: 11.5px; color: var(--psr-mu2); }
.psr-muted { color: var(--psr-mu2); }
.psr-sp { flex: 1; }

/* ── 분할 ── */
.psr-split { display: grid; grid-template-columns: 88px 300px minmax(0, 1fr); gap: 12px; align-items: start; }
.psr-mchips { display: none; }

/* 레일 */
.psr-rail { background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 12px; overflow: hidden; position: sticky; top: 10px; }
.psr-rail-yr { display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 8px 6px; background: var(--psr-band);
               border-bottom: 1px solid var(--psr-line); color: var(--psr-ch); font-size: 13px; }
.psr-rail-yr.is-inline { display: inline-flex; background: none; border: 0; padding: 0; gap: 8px; }
.psr-rail-nav { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 6px; color: var(--psr-ch);
                text-decoration: none; font-size: 15px; }
.psr-rail-nav:hover { background: var(--ord-panel); }
.psr-rail-nav.is-off { color: var(--ord-line-2); }
.psr-rm { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 9px 4px 8px; border-bottom: 1px solid var(--psr-line2);
          text-decoration: none; color: var(--psr-tx); position: relative; }
.psr-rm:last-child { border-bottom: 0; }
.psr-rm:hover { background: var(--ord-surface); }
.psr-rm.is-on { background: var(--psr-ch-l); }
.psr-rm.is-on::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--psr-ch); }
.psr-rm-m { font-size: 12.5px; font-weight: 700; }
.psr-ring { display: block; }
.psr-ring-bg { fill: none; stroke: var(--ord-line); stroke-width: 3.5; }
.psr-ring-fg { fill: none; stroke: var(--psr-ch); stroke-width: 3.5; stroke-linecap: round; }
.psr-ring.is-full .psr-ring-fg { stroke: var(--ord-tint-cyan-fg); }
.psr-nb { font-size: 10.5px; font-weight: 800; border-radius: 999px; padding: 0 6px; line-height: 16px; }
.psr-nb.is-open { color: var(--ord-tint-amber-fg); background: var(--ord-tint-amber-bg); }
.psr-nb.is-done { color: var(--ord-tint-cyan-fg); background: var(--ord-tint-green-bg); }

/* 목록 */
.psr-list { background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 12px; overflow: hidden; }
.psr-list-h { padding: 12px; background: linear-gradient(180deg, var(--ord-band), var(--ord-panel)); border-bottom: 1px solid var(--psr-line); }
.psr-list-t { display: flex; align-items: baseline; gap: 8px; justify-content: space-between; }
.psr-list-t > b { font-size: 14.5px; color: var(--ord-text); }
.psr-list-t .psr-hint b { color: var(--ord-tint-cyan-fg); }
.psr-bar { height: 6px; border-radius: 999px; background: var(--ord-line); overflow: hidden; margin: 8px 0 10px; }
.psr-bar > i { display: block; height: 100%; background: var(--ord-solid-cyan); border-radius: 999px; transition: width .2s; }
.psr-filter { width: 100%; }
.psr-rows { max-height: calc(100vh - 230px); overflow: auto; }
.psr-rows-empty { padding: 36px 16px; text-align: center; color: var(--psr-mu); font-size: 13px; line-height: 1.7; }
.psr-rows-empty small { color: var(--psr-mu2); }
.psr-row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--psr-line2); color: inherit;
           text-decoration: none; position: relative; cursor: pointer; }
.psr-row:hover { background: var(--ord-surface); }
.psr-row.is-on { background: var(--psr-band); }
.psr-row.is-on::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--psr-ch); }
.psr-row.is-dim { opacity: .6; }
.psr-av { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--psr-ch-l); color: var(--psr-ch); font-size: 11.5px; font-weight: 800;
          display: inline-flex; align-items: center; justify-content: center; }
.psr-av.is-dash { background: var(--ord-panel); border: 1.5px dashed var(--ord-tint-blue-line); color: var(--psr-mu); }
.psr-row-m { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.psr-row-n { font-weight: 700; font-size: 13px; color: var(--ord-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.psr-row-s { font-size: 11px; color: var(--psr-mu); }
.psr-flag { color: var(--ord-tint-amber-fg); }
.psr-rv-mark { display: none; margin-left: 4px; color: var(--ord-tint-cyan-fg); font-size: 11px; }
.psr-row[data-reviewed="1"] .psr-rv-mark { display: inline; }
.psr-row-a { flex: none; text-align: right; }
.psr-amt { font-weight: 800; font-size: 12.5px; color: var(--ord-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.psr-amt.is-est { font-weight: 600; color: var(--psr-mu2); font-style: italic; }
.psr-tag { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 5px; font-size: 10.5px; font-weight: 700; line-height: 16px; vertical-align: 1px;
           color: var(--psr-ch); background: var(--psr-ch-l); }
.psr-tag.is-out { color: var(--ord-text-3); background: var(--ord-band); border: 1px solid var(--ord-line); }
.psr-tag.is-warn { color: var(--ord-tint-amber-fg); background: var(--ord-tint-amber-bg); border: 1px solid var(--ord-tint-amber-line); }

/* 상태 배지 */
.psr-pill { display: inline-flex; align-items: center; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; line-height: 18px; }
.psr-pill.is-none, .psr-pill.is-draft, .psr-pill.is-excluded { color: var(--psr-mu); background: var(--ord-panel); border: 1px solid var(--psr-line); }
.psr-pill.is-tax { color: var(--ord-tint-amber-fg); background: var(--ord-tint-amber-bg); }
.psr-pill.is-ready { color: var(--ord-text-2); background: var(--ord-band); }
.psr-pill.is-sent { color: var(--ord-tint-blue-fg); background: var(--ord-tint-blue-bg); }
.psr-pill.is-viewed { color: var(--ord-tint-indigo-fg); background: var(--ord-tint-blue-bg); }
.psr-pill.is-signed { color: var(--ord-tint-green-fg); background: var(--ord-tint-green-bg); }
.psr-pill.is-final { color: var(--ord-tint-cyan-fg); background: var(--ord-tint-green-line); }
.psr-pill.is-forced { color: var(--ord-tint-violet-fg); background: var(--ord-tint-violet-bg); }
.psr-pill.is-late { color: var(--ord-tint-amber-fg); background: var(--ord-surface-2); border: 1px solid var(--ord-tint-amber-line); }

/* ── 패널 ── */
.psr-pane-col { min-width: 0; }
.psr-pane { background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 12px; overflow: hidden; position: sticky; top: 10px;
            max-height: calc(100vh - 96px); display: flex; flex-direction: column; }
.psr-pane-empty { padding: 48px 20px; text-align: center; color: var(--psr-mu); font-size: 13px; background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 12px; }
.psr-pane .psr-pane-empty { border: 0; }
.psr-pane-h { flex: none; display: flex; align-items: center; gap: 8px; padding: 11px 14px; background: linear-gradient(180deg, var(--ord-band), var(--ord-panel)); border-bottom: 1px solid var(--psr-line); }
.psr-pane-t { font-weight: 700; font-size: 14px; color: var(--ord-text); padding-left: 9px; border-left: 4px solid var(--psr-ch); line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.psr-pane-t small { font-size: 12px; font-weight: 500; color: var(--psr-mu); margin-left: 4px; }
.psr-pane-b { flex: 1; overflow: auto; padding: 14px; background: var(--psr-bg); }
.psr-pane-f { flex: none; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 10px 14px; border-top: 1px solid var(--psr-line2); background: var(--ord-panel); }

/* 버튼 */
.psr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 32px; padding: 0 14px; border: 1px solid var(--psr-line); border-radius: 999px;
           background: var(--ord-panel); color: var(--ord-text-2); font-family: inherit; font-weight: 600; font-size: 12.5px; line-height: 1; cursor: pointer; white-space: nowrap; text-decoration: none; }
.psr-btn:hover { background: var(--ord-surface); border-color: var(--ord-line-2); }
.psr-btn.is-pri { background: var(--ord-head-bg); border-color: var(--ord-head-bg); color: var(--ord-on-solid); }
.psr-btn.is-pri:hover { background: color-mix(in srgb, var(--ord-head-bg) 85%, black); }
.psr-btn.is-warn { color: var(--ord-tint-violet-fg); border-color: var(--ord-tint-indigo-line); background: var(--ord-panel); }
.psr-btn.is-warn:hover { background: var(--ord-surface-2); }
.psr-btn.is-dng { color: var(--ord-tint-red-fg); border-color: var(--ord-tint-red-line); background: var(--ord-panel); }
.psr-btn.is-sub { color: var(--psr-mu); }
.psr-btn.is-sm { height: 26px; padding: 0 10px; font-size: 11.5px; }
.psr-btn.is-icon { width: 28px; height: 28px; padding: 0; font-size: 15px; }
.psr-btn[disabled] { opacity: .5; cursor: default; }
.psr-rv { height: 30px; padding: 0 12px; border: 1px solid var(--psr-line); border-radius: 999px; background: var(--ord-panel); color: var(--ord-text-2); font-family: inherit; font-weight: 600; font-size: 12px; line-height: 1; cursor: pointer; }
.psr-rv.is-on { border-color: var(--ord-tint-green-line); background: var(--ord-tint-green-bg); color: var(--ord-tint-cyan-fg); }

/* 다음 할 일 · 신호 */
.psr-next { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin-bottom: 10px; border: 1px solid var(--psr-line); border-radius: 10px;
            background: var(--ord-panel); font-size: 12.5px; line-height: 1.6; color: var(--psr-tx); }
.psr-next > span:first-child { flex: 1; }
.psr-next small { color: inherit; opacity: .85; }
.psr-next.is-gray { background: var(--ord-surface-2); color: var(--ord-text-2); }
.psr-next.is-amber { background: var(--ord-tint-amber-bg); border-color: var(--ord-tint-amber-line); color: var(--ord-tint-amber-fg); }
.psr-next.is-blue { background: var(--ord-tint-blue-bg); border-color: var(--ord-tint-blue-line); color: var(--ord-tint-blue-fg); }
.psr-next.is-green { background: var(--ord-tint-green-bg); border-color: var(--ord-tint-green-line); color: var(--ord-tint-green-fg); }
.psr-next.is-violet { background: var(--ord-surface-2); border-color: var(--ord-tint-indigo-line); color: var(--ord-tint-violet-fg); }
.psr-sigs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.psr-sig { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; border: 1px solid var(--psr-line); background: var(--ord-panel); color: var(--ord-text-2); }
.psr-sig.is-warn { border-color: var(--ord-tint-amber-line); background: var(--ord-tint-amber-bg); color: var(--ord-tint-amber-fg); }
.psr-sig.is-risk { border-color: var(--ord-tint-red-line); background: var(--ord-tint-red-bg); color: var(--ord-tint-red-fg); }
.psr-sig.is-info { border-color: var(--ord-tint-blue-line); background: var(--ord-tint-blue-bg); color: var(--ord-tint-blue-fg); }
.psr-sig.is-good { border-color: var(--ord-tint-green-line); background: var(--ord-tint-green-bg); color: var(--ord-tint-green-fg); }

/* 세금 입력 */
.psr-taxcard { background: var(--ord-panel); border: 1px solid var(--ord-tint-amber-line); border-radius: 10px; overflow: hidden; margin-bottom: 12px; }
.psr-taxcard-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 12px; background: var(--ord-tint-amber-bg); border-bottom: 1px solid var(--ord-tint-amber-line); font-size: 12px; font-weight: 700; color: var(--ord-tint-amber-fg); }
.psr-taxcard-h .psr-hint { font-weight: 500; }
.psr-taxcard-b { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 10px 12px; }
.psr-taxcard-b label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; font-weight: 600; color: var(--psr-mu); }
.psr-inp { width: 100%; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--psr-line); border-radius: 8px; background: var(--ord-panel); color: var(--ord-text);
           font-family: inherit; font-weight: 600; font-size: 13px; line-height: 1.3; text-align: right; font-variant-numeric: tabular-nums; }
.psr-taxcard-b label:last-child .psr-inp { text-align: left; font-weight: 500; }
.psr-inp:focus, .psr-ta:focus { outline: none; border-color: var(--psr-ch); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ord-accent) 13%, transparent); }

/* 명세서 | 곁 */
.psr-grid { display: grid; grid-template-columns: minmax(0, 1fr) 244px; gap: 12px; align-items: start; }
.psr-doc { position: relative; background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 10px; padding: 18px 16px 14px; }
.psr-wm { position: absolute; top: 12px; right: 12px; padding: 1px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 800; color: var(--psr-ch); background: var(--psr-ch-l); }
.psr-wm.is-est { color: var(--psr-mu); background: var(--ord-band); border: 1px dashed var(--ord-line-2); }
.psr-wm.is-force { color: var(--ord-tint-violet-fg); background: var(--ord-tint-violet-bg); }
.psr-doc-t { text-align: center; font-size: 16px; font-weight: 800; letter-spacing: 3px; color: var(--ord-text); }
.psr-doc-p { text-align: center; font-size: 11.5px; color: var(--psr-mu); margin: 3px 0 12px; }
.psr-idt { width: 100%; border-collapse: collapse; font-size: 11.5px; margin-bottom: 10px; }
.psr-idt th, .psr-idt td { border: 1px solid var(--psr-line2); padding: 5px 8px; text-align: left; }
.psr-idt th { width: 17%; background: var(--ord-surface); color: var(--psr-mu); font-weight: 600; white-space: nowrap; }
.psr-idt td { color: var(--ord-text); font-weight: 600; }
.psr-law { font-size: 9.5px; font-weight: 800; color: var(--ord-tint-cyan-fg); background: var(--ord-band); border-radius: 4px; padding: 0 4px; margin-left: 2px; }
.psr-sect { display: flex; align-items: center; gap: 6px; margin: 12px 0 4px; font-size: 11.5px; font-weight: 800; color: var(--psr-ch); }
.psr-sect::after { content: ""; flex: 1; height: 1px; background: var(--psr-line2); }
.psr-it { width: 100%; border-collapse: collapse; font-size: 12px; }
.psr-it th, .psr-it td { padding: 6px 8px; border-bottom: 1px solid var(--psr-line2); text-align: left; vertical-align: top; }
.psr-it th { font-size: 11px; font-weight: 600; color: var(--psr-mu); background: var(--ord-surface); }
.psr-it .r { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.psr-it tr.is-chg td { background: var(--ord-tint-amber-bg); }
.psr-it tr.is-neg td.r:nth-child(2) { color: var(--ord-tint-red-fg); }
.psr-it tr.is-tot td { font-weight: 800; border-top: 1.5px solid var(--ord-line-2); background: var(--ord-surface); }
.psr-basis { font-size: 10.5px; color: var(--psr-mu2); margin-top: 1px; }
.psr-missing { color: var(--ord-tint-amber-fg); font-weight: 700; }
.psr-df { font-size: 11px; font-weight: 700; }
.psr-df.is-up { color: var(--ord-tint-cyan-fg); }
.psr-df.is-dn { color: var(--ord-tint-red-fg); }
.psr-df.is-eq { color: var(--psr-mu2); font-weight: 500; }
.psr-sum { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding: 11px 13px; border-radius: 9px; background: var(--psr-band); }
.psr-sum-l { color: var(--psr-mu); font-size: 12.5px; }
.psr-sum-l small { color: var(--psr-mu2); }
.psr-sum-prev { font-size: 11.5px; color: var(--psr-mu); }
.psr-sum b { margin-left: auto; font-size: 19px; color: var(--psr-ch); font-variant-numeric: tabular-nums; }
.psr-signline { margin-top: 10px; padding: 8px 11px; border: 1px solid var(--psr-line2); border-radius: 8px; font-size: 11.5px; color: var(--psr-mu); }
.psr-signline b { color: var(--ord-text); }
.psr-stamp { margin-top: 10px; padding: 9px 11px; border: 1px dashed var(--ord-tint-indigo-line); border-radius: 8px; background: var(--ord-surface-2); font-size: 11.5px; line-height: 1.65; color: var(--ord-tint-violet-fg); }

.psr-card { background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 10px; overflow: hidden; margin-bottom: 10px; }
.psr-card-h { padding: 8px 12px; background: var(--psr-band); border-bottom: 1px solid var(--psr-line); font-size: 12px; font-weight: 700; color: var(--psr-ch); }
.psr-card-b { padding: 10px 12px; }
.psr-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.psr-cal-w { font-size: 10px; color: var(--psr-mu2); text-align: center; }
.psr-d { position: relative; aspect-ratio: 1 / 1; border-radius: 5px; font-size: 10px; display: flex; align-items: center; justify-content: center; color: var(--ord-text-2); background: var(--ord-band); }
.psr-d.is-blank { background: transparent; }
.psr-d.is-worked, .psr-d.is-recognized { background: var(--ord-tint-blue-bg); color: var(--ord-tint-blue-fg); }
.psr-d.is-late, .psr-d.is-left_early { background: var(--ord-tint-amber-line); color: var(--ord-tint-amber-fg); }
.psr-d.is-absent { background: var(--ord-tint-red-line); color: var(--ord-tint-red-fg); font-weight: 800; }
.psr-d.is-holiday { background: var(--ord-band); color: var(--ord-tint-red-fg); }
.psr-d.is-off { background: var(--ord-band); color: var(--ord-text-4); }
.psr-d.is-future { background: var(--ord-panel); border: 1px solid var(--ord-line); color: var(--ord-text-4); }
.psr-d.is-out { background: transparent; border: 1px dashed var(--ord-line); color: var(--ord-line-2); }
.psr-d.has-ot::after { content: ""; position: absolute; top: 2px; right: 2px; width: 4px; height: 4px; border-radius: 50%; background: var(--ord-solid-violet); }
.psr-clg { display: flex; flex-wrap: wrap; gap: 4px 9px; margin-top: 7px; font-size: 10.5px; color: var(--psr-mu); }
.psr-clg i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 3px; vertical-align: -1px; }
.psr-clg i.is-worked { background: var(--ord-tint-blue-bg); } .psr-clg i.is-late { background: var(--ord-tint-amber-line); } .psr-clg i.is-absent { background: var(--ord-tint-red-line); }
.psr-clg i.is-holiday { background: var(--ord-band); } .psr-clg i.is-ot { background: var(--ord-solid-violet); border-radius: 50%; } .psr-clg i.is-out { border: 1px dashed var(--ord-line-2); }
.psr-spk { display: flex; align-items: flex-end; gap: 5px; height: 56px; }
.psr-spk-bar { flex: 1; min-height: 0; background: var(--ord-line); border-radius: 3px 3px 0 0; }
.psr-spk-bar.is-cur { background: var(--psr-ch); }
.psr-spk-bar.is-est { background: repeating-linear-gradient(45deg, var(--ord-solid-blue) 0 4px, var(--ord-line-2) 4px 8px); }
.psr-spk-l { display: flex; gap: 5px; margin-top: 3px; font-size: 10px; color: var(--psr-mu2); }
.psr-spk-l span { flex: 1; text-align: center; }
.psr-tl { list-style: none; margin: 0; padding: 0; }
.psr-tl li { position: relative; padding: 0 0 9px 16px; font-size: 12px; display: flex; flex-direction: column; }
.psr-tl li::before { content: ""; position: absolute; left: 3px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: var(--psr-ch); }
.psr-tl li::after { content: ""; position: absolute; left: 6px; top: 13px; bottom: 0; width: 1px; background: var(--psr-line2); }
.psr-tl li:last-child::after { display: none; }
.psr-tl li.is-wait::before { background: var(--ord-panel); box-shadow: 0 0 0 2px var(--ord-tint-amber-fg) inset; }
.psr-tl li.is-force::before { background: var(--ord-solid-violet); }
.psr-tl li b { color: var(--ord-text); font-weight: 700; }
.psr-tl li span { font-size: 11px; color: var(--psr-mu); }
.psr-memo p { margin: 0 0 6px; font-size: 12px; line-height: 1.6; color: var(--ord-text-2); white-space: pre-wrap; }
.psr-memo p.is-issue { color: var(--ord-tint-red-fg); }
.psr-memo p.is-ok { color: var(--ord-tint-green-fg); }

/* ── 연간 표 ── */
.psr-year-h { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.psr-year-note { margin-left: auto; }
.psr-legend { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; color: var(--psr-mu); }
.psr-legend span { display: inline-flex; align-items: center; gap: 4px; }
.psr-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--ord-line-2); flex: none; }
.psr-dot.is-none, .psr-dot.is-draft { background: var(--ord-panel); border: 1.5px dashed var(--ord-tint-blue-fg); }
.psr-dot.is-tax { background: var(--ord-solid-amber); } .psr-dot.is-ready { background: var(--ord-solid-blue); } .psr-dot.is-sent { background: var(--ord-solid-blue); }
.psr-dot.is-viewed { background: var(--ord-solid-blue); } .psr-dot.is-signed { background: var(--ord-solid-green); } .psr-dot.is-final { background: var(--ord-solid-cyan); }
.psr-dot.is-forced { background: var(--ord-solid-violet); }
.psr-mx-wrap { background: var(--ord-panel); border: 1px solid var(--psr-line); border-radius: 12px; overflow: auto; }
.psr-mx { border-collapse: separate; border-spacing: 0; min-width: 100%; }
.psr-mx th, .psr-mx td { padding: 8px 10px; border-bottom: 1px solid var(--psr-line2); font-size: 12px; white-space: nowrap; text-align: center; }
.psr-mx th { background: var(--psr-band); color: var(--psr-mu); font-weight: 600; position: sticky; top: 0; }
.psr-mx th:first-child, .psr-mx td:first-child { text-align: left; position: sticky; left: 0; background: var(--ord-panel); z-index: 1; border-right: 1px solid var(--psr-line2); }
.psr-mx th:first-child { background: var(--psr-band); z-index: 2; }
.psr-mx-name { font-weight: 700; color: var(--ord-text); }
.psr-mx-none { color: var(--ord-line-2); }
.psr-mx-tot { font-weight: 700; font-variant-numeric: tabular-nums; }
.psr-cell { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 3px 6px; border-radius: 7px; color: var(--psr-mu); text-decoration: none; font-size: 11px; font-variant-numeric: tabular-nums; }
.psr-cell:hover { background: var(--psr-band); color: var(--ord-text); }

/* ── 모달(관리자 확정 · 대상 제외) — A-4 밴드 카드 ── */
.psr-mbody { padding: 16px; background: var(--ord-surface-2); }
.psr-band { background: var(--ord-panel); border: 1px solid var(--ord-line); border-radius: 10px; overflow: hidden; margin-bottom: 10px; }
.psr-band-h { padding: 8px 12px; background: var(--ord-band); border-bottom: 1px solid var(--ord-line); font-size: 12px; font-weight: 700; color: var(--ord-accent); }
.psr-band-b { padding: 11px 12px; }
.psr-kv { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; font-size: 12.5px; }
.psr-kv dt { color: var(--ord-text-3); }
.psr-kv dd { margin: 0; font-weight: 600; color: var(--ord-text); }
.psr-late { color: var(--ord-tint-amber-fg); }
.psr-req { color: var(--ord-tint-red-fg); }
.psr-warnbox { margin-bottom: 10px; padding: 10px 12px; border: 1px solid var(--ord-tint-indigo-line); border-radius: 10px; background: var(--ord-surface-2); font-size: 12.5px; line-height: 1.65; color: var(--ord-tint-violet-fg); }
.psr-warnbox ul { margin: 4px 0 0; padding-left: 18px; list-style: disc; }
.psr-choice { flex-wrap: wrap; border-radius: 14px; margin-bottom: 8px; }
.psr-ta { display: block; width: 100%; box-sizing: border-box; min-height: 60px; padding: 8px 10px; border: 1px solid var(--ord-line-2); border-radius: 8px;
          background: var(--ord-panel); color: var(--ord-text); font-family: inherit; font-size: 13px; line-height: 1.55; resize: vertical; }
.psr-chk { display: flex; align-items: center; gap: 7px; margin-top: 9px; font-size: 12.5px; color: var(--ord-text-2); cursor: pointer; }
.psr-chk input { accent-color: var(--ord-accent); }
.psr-mbody .psr-hint { margin: 6px 0 0; }

/* ── 좁은 화면 ── */
.psr-in-modal .psr-pane { position: static; max-height: none; border: 0; border-radius: 0; overflow: visible; }
.psr-in-modal .psr-pane-b { overflow: visible; }
.psr-in-modal .psr-pane-f { position: sticky; bottom: 0; z-index: 2; box-shadow: 0 -4px 12px rgba(15, 23, 42, .06); }
@media (max-width: 1380px) {
  .psr-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1180px) {
  .psr-split { grid-template-columns: 88px minmax(0, 1fr); }
  .psr-pane-col { display: none; }
  .psr-rows { max-height: none; }
}
@media (max-width: 768px) {
  .psr-split { grid-template-columns: 1fr; }
  .psr-rail { display: none; }
  .psr-mchips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--ord-page-gutter, 12px)) 10px; padding: 0 var(--ord-page-gutter, 12px); }
  .psr-mchips::-webkit-scrollbar { display: none; }
  .psr-mchip { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border: 1px solid var(--psr-line); border-radius: 999px;
               background: var(--ord-panel); color: var(--ord-text-2); font-size: 12.5px; text-decoration: none; }
  .psr-mchip.is-on { background: var(--ord-head-bg); border-color: var(--ord-head-bg); color: var(--ord-on-solid); font-weight: 700; }
  .psr-mchip-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ord-solid-amber); }
  .psr-list { margin: 0 calc(-1 * var(--ord-page-gutter, 12px)); border-radius: 0; border-left: 0; border-right: 0; }
  .psr-taxcard-b { grid-template-columns: 1fr 1fr; }
  .psr-pane-f { position: sticky; bottom: 0; }
}

/* 세금·기타공제 예외 조정 접기(2026-09-30 — 근태관리에서 자동 입력된 명세서) */
.psr-taxfold { margin-bottom: 12px; border: 1px solid var(--psr-line); border-radius: 10px; background: var(--ord-panel); }
.psr-taxfold > summary { cursor: pointer; padding: 8px 12px; font-size: 12px; font-weight: 700; color: var(--psr-ch); }
.psr-taxfold > summary .psr-hint { font-weight: 500; margin-left: 6px; }
.psr-taxfold[open] > summary { border-bottom: 1px solid var(--psr-line); }
.psr-taxfold .psr-taxcard { margin: 10px; }
