@font-face{font-family:Pretendard GOV;font-weight:400;font-display:swap;src:url(https://static.gov.kr/content/fonts/PretendardGOV-Regular.subset.woff2)format("woff2"),url(https://static.gov.kr/content/fonts/PretendardGOV-Regular.subset.woff)format("woff")}@font-face{font-family:Pretendard GOV;font-weight:500;font-display:swap;src:url(https://static.gov.kr/content/fonts/PretendardGOV-Medium.subset.woff2)format("woff2"),url(https://static.gov.kr/content/fonts/PretendardGOV-Medium.subset.woff)format("woff")}@font-face{font-family:Pretendard GOV;font-weight:700;font-display:swap;src:url(https://static.gov.kr/content/fonts/PretendardGOV-Bold.subset.woff2)format("woff2"),url(https://static.gov.kr/content/fonts/PretendardGOV-Bold.subset.woff)format("woff")}:root{--iw-gray-5:#f4f5f6;--iw-gray-10:#e6e8ea;--iw-gray-20:#cdd1d5;--iw-gray-30:#b1b8be;--iw-gray-40:#8a949e;--iw-gray-50:#6d7882;--iw-gray-60:#58616a;--iw-gray-70:#464c53;--iw-gray-80:#33363d;--iw-gray-90:#1e2124;--iw-gray-95:#131416;--iw-primary:#256ef4;--iw-primary-5:#ecf2fe;--iw-primary-10:#d8e5fd;--iw-primary-20:#b1cefb;--iw-primary-60:#0b50d0;--iw-primary-70:#083891;--iw-secondary-5:#eef2f7;--iw-secondary-50:#346fb2;--iw-success-5:#eaf6ec;--iw-success-50:#228738;--iw-success-60:#267337;--iw-warning-5:#fff3db;--iw-warning-30:#ffb114;--iw-warning-50:#9e6a00;--iw-danger-5:#fdefec;--iw-danger-50:#de3412;--iw-danger-60:#bd2c0f;--iw-info-5:#e7f4fe;--iw-info-60:#096ab3;--bg:var(--iw-gray-5);--surface:#fff;--ink:#000;--ink-soft:var(--iw-gray-80);--line:var(--iw-gray-20);--line-soft:var(--iw-gray-10);--green:var(--iw-success-50);--green-bg:var(--iw-success-5);--yellow:var(--iw-warning-50);--yellow-bg:var(--iw-warning-5);--red:var(--iw-danger-50);--red-bg:var(--iw-danger-5);--gwanak-blue:#004e9c;--gwanak-blue-hover:#003c7a;--gwanak-blue-active:#002c5a;--gwanak-blue-bg:#eaf1f9;--gwanak-orange:#e38d2d;--accent:var(--gwanak-blue);--accent-hover:var(--gwanak-blue-hover);--accent-active:var(--gwanak-blue-active);--accent-bg:var(--gwanak-blue-bg);--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 2px 8px 0 #0000000a;--shadow:0 4px 12px #00000014;--shadow-lg:0 16px 24px 0 #0000001f;--shadow-primary:0 6px 8px 0 #004e9c1f}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Pretendard GOV,Pretendard,Malgun Gothic,맑은 고딕,Apple SD Gothic Neo,Dotum,sans-serif;font-size:14px;line-height:1.5;overflow-x:clip}.container{max-width:1280px;margin:0 auto;padding:24px 20px 120px}.topbar{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:20px;display:flex}.topbar h1{letter-spacing:-.3px;white-space:nowrap;flex-shrink:0;min-width:180px;margin:0;font-size:19px}.topbar .who{color:var(--ink-soft);margin-left:auto;font-size:13px}.month-form{align-items:center;gap:6px;display:inline-flex}input[type=month]{border:1px solid var(--line);font:inherit;background:var(--surface);border-radius:8px;padding:5px 9px}.badge{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.submitted{border-color:var(--green);color:var(--green);background:var(--green-bg)}.badge.rejected{border-color:var(--red);color:var(--red);background:var(--red-bg)}.badge.confirmed{background:var(--ink);color:#fff;border-color:var(--ink)}.badge.age{font-weight:700}.badge.age.senior{background:var(--ink);color:#fff;border-color:var(--ink)}.badge.age.junior{background:var(--surface);color:var(--ink);border-color:var(--ink)}.notice{border:1px solid var(--line);border-left:3px solid var(--yellow);background:var(--yellow-bg);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.notice.reject{border-left-color:var(--red);background:var(--red-bg)}.upload-zone{border:1.5px dashed var(--line);background:var(--surface);text-align:center;color:var(--ink-soft);border-radius:12px;margin-bottom:22px;padding:26px 20px;transition:border-color .15s,background .15s}.upload-zone.drag{border-color:var(--ink);background:#fafafa}.upload-zone .hint{margin-top:4px;font-size:12px}.upload-zone button{margin-top:10px}.upload-zone.busy{opacity:.6;pointer-events:none}.upload-zone.handoff{padding:14px 20px}.upload-zone.handoff button{margin-top:8px}button.primary,button.ghost,button.choice,button.danger{font:inherit;border-radius:var(--radius);cursor:pointer;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:7px 14px;transition:background-color .15s ease-in-out,border-color .15s ease-in-out;display:inline-flex}button.primary:focus-visible,button.ghost:focus-visible,button.choice:focus-visible,button.danger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.danger{background:var(--red);color:#fff;border:1px solid var(--red);font-weight:600}button.danger:hover:not(:disabled){background:var(--iw-danger-60);border-color:var(--iw-danger-60)}button.primary{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:active:not(:disabled){background:var(--accent-active);border-color:var(--accent-active)}button.primary:disabled,button.danger:disabled{background:var(--iw-gray-20);border-color:var(--iw-gray-20);color:var(--iw-gray-50);cursor:not-allowed}button.ghost{background:var(--surface);border:1px solid var(--iw-gray-60);color:var(--ink)}button.ghost:hover:not(:disabled){background:var(--iw-gray-5)}button.ghost:active:not(:disabled){background:var(--iw-gray-10)}button.choice{background:var(--surface);border:1px solid var(--line);padding:6px 16px;font-weight:600}button.choice:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-hover)}.card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;margin-bottom:12px;padding:14px 16px}.card.green{border-left-color:var(--green)}.card.yellow{border-left-color:#e0b13c}.card.red{border-left-color:var(--red)}.card.locked{background:var(--iw-gray-5);border-color:var(--line-soft);border-left-color:var(--iw-gray-30)}.card.locked .cal-cell.off{background:var(--iw-gray-10)}.card-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.card-head .name{font-size:16px;font-weight:700}.card-head .meta{color:var(--ink-soft);font-size:12.5px}.card-head .state{margin-left:auto;font-size:12px;font-weight:700}.card.green .state{color:var(--green)}.card.yellow .state{color:var(--yellow)}.card.red .state{color:var(--red)}.unmatched-foot{color:var(--ink-soft);align-items:flex-end;gap:10px;margin-top:8px;font-size:13px;display:flex}.unmatched-foot>span{flex:1}button.ghost.icon-danger{color:var(--red);flex:none;padding:4px 9px;font-size:14px;line-height:1.2}button.ghost.icon-danger:hover{border-color:var(--red);background:var(--red-bg)}.summary-row{flex-wrap:wrap;align-items:baseline;gap:14px;margin-top:8px;font-size:13.5px;display:flex}.summary-row .pay{font-variant-numeric:tabular-nums;margin-left:auto;font-size:15px;font-weight:700}.summary-row .pay small{color:var(--ink-soft);font-weight:400}.summary-row .kv b{font-variant-numeric:tabular-nums}.resolve-item{border:1px solid var(--line);background:var(--yellow-bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding:10px 12px;display:flex}.resolve-item img{border:1px solid var(--line);height:44px;image-rendering:pixelated;background:#fff;border-radius:6px}.resolve-item .no-cell{border:1px dashed var(--line);min-width:68px;height:44px;color:var(--ink-soft);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex}.resolve-item .q{font-weight:600}.resolve-item .q small{color:var(--ink-soft);font-weight:400;display:block}.resolve-item .actions{gap:6px;margin-left:auto;display:flex}.flag-item{border:1px solid var(--line);background:var(--red-bg);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:13px}.flag-item .actions{gap:6px;margin-top:8px;display:flex}.flag-item input[type=text]{border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:6px 10px}.flag-item .resolved-note{color:var(--ink-soft);margin-top:6px}.card-comparison{grid-template-columns:1.15fr 1fr;align-items:stretch;gap:16px;margin-top:14px;display:grid}@media (max-width:960px){.card-comparison{grid-template-columns:1fr}}.comparison-col{border:1px solid var(--line);background:#fbfbf9;border-radius:10px;flex-direction:column;padding:12px 14px;display:flex}.comparison-col.full-width{margin-top:12px}.comparison-col-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.comparison-col-header .col-title{color:var(--ink);font-size:13px;font-weight:700}.page-switcher{gap:4px;display:flex}.page-tab{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;padding:2px 8px;font-size:11.5px}.page-tab.active{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}.zoom-btn{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:6px;padding:3px 8px;font-size:12px;transition:all .15s}.zoom-btn:hover{background:var(--bg);color:var(--ink);border-color:#bbb}.scan-image-box{border:1px solid var(--line);cursor:zoom-in;background:#fff;border-radius:6px;flex:1;justify-content:center;align-items:center;min-height:560px;padding:8px;display:flex;position:relative;overflow:hidden}.scan-image-large{object-fit:contain;width:calc(100% - 16px);height:calc(100% - 16px);transition:transform .15s;display:block;position:absolute;inset:8px}.scan-image-box:hover .scan-image-large{transform:scale(1.015)}.scan-hover-hint{color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c1c1cc7;border-radius:4px;padding:4px 9px;font-size:11.5px;position:absolute;bottom:10px;right:10px}.scan-empty-box{min-height:240px;color:var(--ink-soft);border:1px dashed var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:4px;display:grid}.cal-cell{border:1px solid var(--line);background:#fff;border-radius:6px;flex-direction:column;justify-content:space-between;min-height:48px;padding:6px;font-size:11.5px;display:flex}.cal-cell .d{color:var(--ink-soft);font-size:11px;font-weight:500}.cal-cell.worked{background:var(--green-bg);border-color:#bcdcc3}.cal-cell.half{background:var(--green-bg)}.cal-cell.holiday{background:#eef1f8}.cal-cell.absent-sched{background:var(--red-bg)}.cal-cell.review{background:var(--yellow-bg);border-color:#ecd9a0}.cal-cell.etc{background:#f4f1ec}.cal-cell.off{background:var(--bg);color:var(--ink-soft)}.cal-cell.off .v{color:var(--ink-soft);font-weight:500}.cal-cell.off-pattern{background:var(--yellow-bg);border-style:dashed;border-color:var(--yellow)}.cal-cell .note-dot{color:var(--ink-soft);margin-left:2px;font-size:13px;line-height:1}.verdict-picker .actions{flex-wrap:wrap;gap:6px;display:flex}.verdict-picker .picker-notice{background:var(--yellow-bg);color:var(--ink);border-radius:6px;margin:0 0 6px;padding:6px 8px;font-size:12px;line-height:1.5}.verdict-picker .choice.on{border-color:var(--ink);background:var(--ink);color:var(--surface)}.verdict-picker .choice.current{border-color:var(--ink);font-weight:700}.verdict-note{background:var(--bg);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:9px 10px;display:flex}.verdict-note .hint{color:var(--ink-soft);font-size:12px}.verdict-note select,.verdict-note input{box-sizing:border-box;width:100%}.verdict-note .row{gap:6px;display:flex}.verdict-note .req{color:var(--red);font-size:11.5px}.verdict-picker .err{color:var(--red);margin:8px 0 0;font-size:12.5px}.pop-current{color:var(--ink-soft);margin:0 0 8px;font-size:12.5px}.pop-crop{align-items:center;gap:10px;margin:0 0 10px;display:flex}.pop-crop img{border:1px solid var(--line);height:44px;image-rendering:pixelated;background:#fff;border-radius:6px}.pop-crop .no-cell{border:1px dashed var(--line);min-width:68px;height:44px;color:var(--ink-soft);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex}.pop-crop small{color:var(--ink-soft);font-size:11.5px;line-height:1.4}.cal-cell .v{font-size:12px;font-weight:600}.cal-head{color:var(--ink-soft);text-align:center;padding:4px 0;font-size:11.5px;font-weight:600}.upload-zone.smart{padding:44px 20px}.upload-zone.smart .big{color:var(--ink);font-size:16px;font-weight:600}.smart-result{margin-top:20px}.smart-group{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:12px 16px}.smart-group h3{margin:0 0 8px;font-size:13.5px}.smart-line{border-bottom:1px dashed var(--line);align-items:center;gap:10px;padding:6px 0;font-size:13.5px;display:flex}.smart-line:last-child{border-bottom:none}.smart-line .detail{color:var(--ink-soft);flex:1;font-size:12.5px}.ai-comment{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:12px 16px 10px}.ai-comment-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.ai-badge{color:#6b4fd8;font-size:13px;line-height:1}.ai-title{color:#6b4fd8;margin-right:4px;font-size:12.5px;font-weight:700}.ai-chip{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.ai-chip.ok{color:var(--green);background:var(--green-bg)}.ai-chip.warn{color:var(--yellow);background:var(--yellow-bg)}.ai-chip.info{color:#4b3aa8;background:#efecfb}.ai-comment-body p{color:var(--ink);margin:0 0 4px;font-size:13px;line-height:1.55}.ai-comment-body p:last-child{margin-bottom:0}.ai-comment-foot{color:var(--ink-soft);margin-top:8px;font-size:11.5px}.smart-split{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;margin-bottom:22px;display:grid}.smart-split>*{min-width:0}.smart-split .upload-zone.smart{flex-direction:column;justify-content:center;align-items:center;min-height:400px;margin-bottom:0;display:flex}@media (max-width:860px){.smart-split{grid-template-columns:1fr}.smart-split .upload-zone.smart{min-height:220px}}.progress-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;padding:20px 24px;display:flex}.progress-panel .panel-title{color:var(--ink-soft);align-items:center;gap:8px;margin:0 0 8px;font-size:13px;font-weight:700;display:flex}.progress-panel .stage-list{flex-direction:column;flex:1;justify-content:center;display:flex}.stage-row{align-items:stretch;gap:10px;display:flex}.stage-row .rail{flex-direction:column;flex-shrink:0;align-items:center;width:12px;padding-top:4px;display:flex}.rail-line{background:var(--line);border-radius:1px;flex:1;width:2px;min-height:16px;margin:5px 0}.rail-line.done{background:var(--green)}.stage-body{flex-direction:column;flex:1;min-width:0;padding-bottom:20px;display:flex}.stage-row:last-child .stage-body{padding-bottom:0}.stage-label{font-size:13.5px;font-weight:600;line-height:1.45}.stage-row.idle .stage-label{color:var(--ink-soft);font-weight:500}.stage-detail{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1px;font-size:12.5px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.stage-row.live .stage-detail{color:var(--green)}.stage-row.wait .stage-detail{color:var(--yellow)}.stage-row.done .stage-detail{font-weight:500}.panel-hint{color:var(--ink-soft);text-align:center;margin:10px 0 0;font-size:12.5px}.panel-hint.done{color:var(--green);font-weight:600}.live-ind{flex-shrink:0;justify-content:center;align-items:center;width:12px;height:12px;display:inline-flex;position:relative}.live-ind .ping{opacity:.75;background:#4ade80;border-radius:999px;animation:1s cubic-bezier(0,0,.2,1) infinite live-ping;position:absolute;inset:0}.live-ind .ring{background:var(--surface);border:1px solid #cfcfc9;border-radius:999px;justify-content:center;align-items:center;width:12px;height:12px;display:flex;position:relative}.live-ind .dot{background:#cfcfc9;border-radius:999px;width:6px;height:6px}.live-ind.live .ring{border-color:#22c55e}.live-ind.live .dot{background:#22c55e;animation:2s cubic-bezier(.4,0,.6,1) infinite live-pulse}.live-ind.wait .ring{border-color:var(--yellow)}.live-ind.wait .dot{background:var(--yellow)}@keyframes live-ping{75%,to{opacity:0;transform:scale(2)}}@keyframes live-pulse{50%{opacity:.45}}.stage-check{background:var(--green);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:12px;height:12px;font-size:8.5px;font-weight:700;line-height:1;display:inline-flex}.stage-fail{background:var(--red);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:12px;height:12px;font-size:8px;font-weight:700;line-height:1;display:inline-flex}.stage-row.fail .stage-detail{color:var(--red)}.stage-warn{background:var(--yellow);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:12px;height:12px;font-size:8.5px;font-weight:700;line-height:1;display:inline-flex}.stage-row.warn .stage-detail{color:var(--yellow)}.panel-hint.warn{color:var(--yellow);font-weight:600}.missing-split{grid-template-columns:1fr 1fr;align-items:stretch;gap:12px;margin-top:12px;display:grid}.missing-split .scan-upload-placeholder{margin-top:0}@media (max-width:860px){.missing-split{grid-template-columns:1fr}}.progress-panel.compact{padding:14px 16px}.progress-panel.compact .panel-title{margin-bottom:6px}.progress-panel.compact .stage-list{justify-content:center}.progress-panel.compact .stage-body{padding-bottom:14px}.progress-panel.compact .stage-row:last-child .stage-body{padding-bottom:0}.progress-panel.compact .rail-line{min-height:12px}.section-head{border-bottom:2px solid var(--ink);align-items:baseline;gap:10px;margin:26px 0 10px;padding-bottom:6px;display:flex}.section-head:first-child{margin-top:0}.section-head h2{letter-spacing:-.2px;margin:0;font-size:15px}.section-head .count{color:var(--ink-soft);font-size:12.5px}.scan-upload-placeholder{border:1.5px dashed var(--line);min-height:180px;color:var(--ink-soft);cursor:pointer;background:#fbfbf9;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.scan-upload-placeholder:hover{border-color:var(--ink);color:var(--ink);background:#fafafa}.scan-upload-placeholder .plus{font-size:34px;font-weight:300;line-height:1}.scan-upload-placeholder.busy{opacity:.55;pointer-events:none}.scan-upload-placeholder.readonly{cursor:default}.scan-upload-placeholder.readonly:hover{border-color:var(--line);color:var(--ink-soft);background:#fbfbf9}.popover{z-index:500;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;position:fixed;box-shadow:0 10px 28px #0000002e}.popover h4{margin:0 0 10px;font-size:13.5px}.popover .form-grid{grid-template-columns:1fr 1fr;gap:10px}.popover .form-actions{margin-top:12px}.card-head .pay-glance{font-variant-numeric:tabular-nums;margin-left:auto;font-size:15px;font-weight:700}.card-head .pay-glance small{color:var(--ink-soft);font-weight:400}.card-head .pay-glance+.state{margin-left:0}.payroll-preview{margin-top:10px;font-size:12.5px}.payroll-preview .pp-title{color:var(--ink-soft);border-bottom:1px solid var(--line);margin-bottom:2px;padding-bottom:4px;font-size:12px;font-weight:700}.payroll-preview .pp-title.money{margin-top:12px}.birthdate-inline{margin:8px 0 4px}.birthdate-inline b{margin-bottom:3px;display:block}.birthdate-inline p{color:var(--ink-soft);margin:0 0 7px;font-size:11.5px;line-height:1.5}.birthdate-inline .bd-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.birthdate-inline .bd-row input{border:1px solid var(--line);font:inherit;background:var(--surface);color:var(--ink);border-radius:5px;padding:5px 7px;font-size:12px}.birthdate-inline .bd-row .bd-age{color:var(--ink-soft);white-space:nowrap;font-size:11.5px}.birthdate-inline .bd-row button{padding:5px 12px;font-size:12px}.payroll-preview .pp-row{border-bottom:1px dashed var(--line);align-items:baseline;gap:8px;padding:3.5px 0;display:flex}.payroll-preview .pp-row:last-child{border-bottom:none}.payroll-preview .pp-row .lbl{white-space:nowrap;font-weight:600}.payroll-preview .pp-row .why{text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;flex:1;font-size:11.5px}.payroll-preview .pp-row .val{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:76px}.payroll-preview .pp-row.sub{border-bottom:none;padding-left:14px}.payroll-preview .pp-row.sub .lbl{color:var(--ink-soft);font-weight:400}.payroll-preview .pp-row.sub .val{font-size:11.5px}.payroll-preview .pp-row.sub .val.ok{color:var(--green);font-weight:600}.payroll-preview .pp-row.sub .val.no{color:var(--ink-soft)}.payroll-preview .pp-row.total{border-top:1.5px solid var(--ink);border-bottom:none;margin-top:2px;padding-top:6px}.payroll-preview .pp-row.total .val{font-size:14.5px;font-weight:700}.cal-cell.clickable{cursor:pointer}.cal-cell.off-schedule.clickable:hover .v:before{content:"＋ 판정";color:var(--accent);font-weight:600}.cal-cell.clickable:hover{border-color:var(--ink)}.image-overlay{z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121212d1;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.overlay-container{background:#fff;border-radius:12px;flex-direction:column;max-width:92vw;max-height:92vh;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000059}.overlay-header{border-bottom:1px solid var(--line);background:#fdfdfc;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.overlay-title{color:var(--ink);font-size:14px;font-weight:700}.overlay-close-btn{background:var(--bg);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:6px;padding:5px 12px;font-size:13px;font-weight:600;transition:all .15s}.overlay-close-btn:hover{background:#e6e6e2;border-color:#ccc}.overlay-img-wrap{background:#f5f5f3;justify-content:center;align-items:center;padding:14px;display:flex;overflow:auto}.overlay-img{object-fit:contain;border-radius:4px;width:auto;max-width:88vw;height:auto;max-height:80vh;box-shadow:0 4px 12px #0000001a}.bottom-bar{background:var(--surface);border-top:1px solid var(--line);align-items:center;gap:16px;padding:12px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-bar .inner{align-items:center;gap:16px;width:100%;max-width:1280px;margin:0 auto;display:flex}.bottom-bar .counts{color:var(--ink-soft);font-size:13px}.bottom-bar .counts b.y{color:var(--yellow)}.bottom-bar .counts b.r{color:var(--red)}.bottom-bar .spacer{flex:1}.login-wrap{place-items:center;min-height:100vh;display:grid}.login-box{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:340px;padding:32px}.login-box h1{margin:0 0 4px;font-size:17px}.login-box p{color:var(--ink-soft);margin:0 0 18px;font-size:13px}.login-box label{color:var(--ink-soft);margin:12px 0 4px;font-size:12.5px;display:block}.login-box input{border:1px solid var(--line);width:100%;font:inherit;border-radius:8px;padding:8px 10px}.login-box button{width:100%;margin-top:18px;padding:9px}.login-box .error{color:var(--red);margin-top:10px;font-size:13px}.login-box .notice{color:var(--ink-soft);margin-top:10px;font-size:13px}.login-box .otp-meta{color:var(--ink-soft);margin-top:6px;font-size:12.5px}.login-box .otp-actions{justify-content:space-between;gap:8px;margin-top:10px;display:flex}.login-box .otp-actions button{width:auto;margin-top:0;padding:5px 8px;font-size:12.5px}.empty{text-align:center;color:var(--ink-soft);padding:30px 0}.container.wide{max-width:1080px}.container.wide.table-page{max-width:1280px}.tabs{border:1px solid var(--line);border-radius:9px;gap:2px;display:inline-flex;overflow:hidden}.tabs a{color:var(--ink-soft);background:var(--surface);padding:5px 14px;font-size:13px;text-decoration:none}.tabs a.active{background:var(--ink);color:#fff;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.toolbar .spacer{flex:1 1 0;min-width:0}.toolbar select{border:1px solid var(--line);font:inherit;background:var(--surface);border-radius:8px;max-width:100%;padding:6px 9px}.toolbar .toolbar-note{word-break:keep-all}.table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;font-size:13.5px;overflow:hidden}.table th{text-align:left;color:var(--ink-soft);border-bottom:1px solid var(--line);background:#fafaf8;padding:9px 12px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--line);padding:9px 12px}.table tr:last-child td{border-bottom:none}.table tr.dim{color:var(--ink-soft)}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:#fafaf8}.row-actions{flex-wrap:nowrap;justify-content:flex-end;gap:4px;display:flex}.table td.row-actions{text-align:right;white-space:nowrap;display:table-cell}.table td.row-actions button{vertical-align:middle}.table td.row-actions button+button{margin-left:2px}.table .row-actions button{padding:3px 9px;font-size:12px}.table-scroll{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow-x:auto}.table-scroll>.table{border:none;border-radius:0;width:auto;min-width:100%}.table td.nowrap,.table th.nowrap{white-space:nowrap}.table td.wrap-name{word-break:keep-all;min-width:7.5em}.badge.none{color:#b0b0ab}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}.form-card h3{margin:0 0 12px;font-size:15px}.form-grid{grid-template-columns:repeat(4,1fr);gap:14px 12px;display:grid}.form-grid label{color:var(--ink);flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.form-grid label small{color:var(--ink-soft);font-size:12px;font-weight:400}.form-grid input,.form-grid select{border:1px solid var(--line);font:inherit;color:var(--ink);border-radius:8px;padding:7px 9px}input::placeholder,textarea::placeholder{color:var(--iw-gray-50);opacity:1}.form-grid input:disabled,.form-grid select:disabled{color:var(--ink);background:var(--iw-gray-5);-webkit-text-fill-color:var(--ink);opacity:1}.wd-picker{gap:4px;display:flex}.wd-picker button{border:1px solid var(--line);background:var(--surface);font:inherit;cursor:pointer;border-radius:7px;flex:1;padding:6px 0;font-size:12.5px}.wd-picker button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.form-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.board-footer{align-items:center;gap:12px;margin-top:14px;display:flex}.board-footer .spacer{flex:1}.reason-input{border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:8px 10px}.account-cell{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.account-cell .acct-no{font-variant-numeric:tabular-nums;letter-spacing:.3px}.account-cell .eye{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-soft);border-radius:6px;justify-content:center;align-items:center;padding:2px 6px;font-size:12px;line-height:1;display:inline-flex}.account-cell .eye:hover:not(:disabled){color:var(--ink);border-color:var(--iw-gray-40)}.quick-register{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.quick-register input,.quick-register select{border:1px solid var(--line);font:inherit;background:var(--surface);border-radius:8px;padding:6px 9px}.quick-register .wd-picker button{flex:none;min-width:30px;padding:6px 7px}.feed{margin-top:28px}.feed h2{margin:0 0 10px;font-size:15px}.feed-item{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:7px;padding:9px 13px;font-size:13px;display:flex}.feed-item .when{color:var(--ink-soft);white-space:nowrap;font-size:12px}.feed-item .what{color:var(--ink-soft)}.modal-backdrop{z-index:200;background:#1c1c1c73;justify-content:center;align-items:center;animation:.15s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:min(420px,100vw - 40px);padding:22px 24px;box-shadow:0 12px 40px #0000002e}.modal-card.wide{width:min(560px,100vw - 40px);max-height:88vh;overflow-y:auto}.modal-card.wide .form-grid{grid-template-columns:repeat(2,1fr);margin:14px 0 4px}.modal-card.wide .form-grid small{min-height:14px}.modal-card.smart-modal{width:min(1040px,100vw - 32px);max-height:92vh;padding:18px 20px 16px;overflow-y:auto}.modal-card.smart-modal .toolbar{margin-top:0}.smart-modal-foot{border-top:1px solid var(--line);justify-content:flex-end;margin-top:14px;padding-top:12px;display:flex}.modal-message{margin:0 0 6px;font-size:15px;font-weight:600}.modal-message.with-close{align-items:flex-start;gap:10px;display:flex}.modal-message.with-close>span:first-child{flex:1}.modal-close-btn{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.modal-close-btn:hover{color:var(--ink)}.modal-close-btn:disabled{opacity:.4;cursor:default}.modal-detail{color:var(--ink-soft);margin:0 0 12px;font-size:13px}.modal-check{background:var(--red-bg);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;margin:4px 0 16px;padding:9px 11px;font-size:13px;display:flex}.modal-check input{width:15px;height:15px;accent-color:var(--red);cursor:pointer}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.site-header{background:var(--surface);margin-top:-24px;margin-bottom:20px}.site-header .header-top{justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto;padding:12px 20px;display:flex;position:relative}.site-header .header-top:after{content:"";background:var(--line);width:100vw;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.site-header .logo{color:var(--ink);align-items:center;gap:11px;text-decoration:none;display:inline-flex}.site-header .logo-img{width:auto;height:30px;display:block}.site-header .logo-compact{display:none}.site-header .logo-divider{background:var(--line);width:1px;height:20px}.site-header .logo-text{letter-spacing:-.5px;font-size:17px;font-weight:700}.site-header .header-util{align-items:center;gap:12px;display:flex}.site-header .header-util .who{color:var(--ink-soft);font-size:13px}.site-header .header-gnb{position:relative}.site-header .header-gnb:after{content:"";background:var(--line);width:100vw;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.site-header .header-gnb ul{z-index:1;gap:4px;max-width:1280px;margin:0 auto;padding:0 20px;list-style:none;display:flex;position:relative}.site-header .header-gnb a{color:var(--ink-soft);border-bottom:3px solid #0000;padding:12px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.site-header .header-gnb a:hover{color:var(--accent-hover);background:var(--accent-bg)}.site-header .header-gnb a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.site-header .header-gnb a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.site-header .page-title{flex-wrap:wrap;align-items:center;gap:12px;max-width:1280px;margin:0 auto;padding:18px 20px 16px;display:flex}.site-header .page-title h1{letter-spacing:-.5px;margin:0;font-size:22px;font-weight:700}@media (max-width:860px){.site-header .logo-signature{display:none}.site-header .logo-compact{display:block}}@media (max-width:720px){.site-header .header-gnb ul{overflow-x:auto}.site-header .logo-text,.site-header .logo-divider{display:none}.site-header .page-title h1{font-size:19px}}.site-header .back-link{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:30px;height:30px;color:var(--ink);justify-content:center;align-items:center;font-size:15px;text-decoration:none;display:inline-flex}.site-header .back-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.login-box{border-top:3px solid var(--accent);box-shadow:var(--shadow-sm)}.login-brand{justify-content:center;margin-bottom:18px;display:flex}.login-brand img{width:auto;height:38px;display:block}.login-box h1{text-align:center;font-size:18px}.login-box p{text-align:center}.login-box input:focus,input[type=text]:focus,input[type=password]:focus,input[type=month]:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.tabs a.active{background:var(--accent);color:#fff}.table th{background:var(--iw-secondary-5);color:var(--iw-gray-95);font-weight:700}a{color:var(--accent-hover)}.table.board tr.sub td{color:var(--ink-soft);border-bottom-color:var(--line-soft);padding-top:6px;padding-bottom:6px;font-size:12.5px}.table.board tr.sub .sub-name{color:var(--ink);padding-left:22px}.table.board tr.sub .sub-indent{color:var(--iw-gray-30);margin-right:6px}.table.board tr.sub .sub-badge{margin-left:6px;padding:1px 7px;font-size:11px}.table.board tr.sub .sub-counts{font-variant-numeric:tabular-nums;white-space:nowrap}.table.board tr.sub .sub-muted{color:var(--iw-gray-30)}.badge.review{border-color:var(--yellow);color:var(--yellow);background:var(--yellow-bg)}.feed-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.feed-head h2{margin:0}.feed-toggle{font:inherit;color:var(--accent-hover);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:4px 10px;font-size:12.5px;display:inline-flex}.feed-toggle:hover{background:var(--accent-bg);border-color:var(--accent)}.feed-toggle .chev{line-height:1;transition:transform .15s;display:inline-block}.feed-toggle .chev.up{transform:rotate(180deg)}.notice.info{border-left-color:var(--accent);background:var(--accent-bg)}.decide-hint{color:var(--ink-soft);font-size:12.5px}.cal-cell.clickable:hover{border-color:var(--accent);background:var(--accent-bg)}.reject-targets{margin:6px 0 0;padding-left:18px}.reject-targets li{margin:2px 0}.notice .reject-next{color:var(--ink-soft);margin-top:6px}.reject-draft{flex-direction:column;flex:1;gap:6px;font-size:13px;display:flex}.reject-draft-title{color:var(--ink-soft)}.reject-draft-row{align-items:center;gap:6px;display:flex}.reject-draft-row .nm{min-width:72px;font-weight:600}.reject-draft-row .reason-input{flex:1}.card .card-reject{margin:8px 0 10px}button.ghost.on{border-color:var(--red);color:var(--red);background:var(--red-bg)}.feed-item.ev-reject,.feed-item.ev-record_delete,.feed-item.ev-page_delete{border-left:3px solid var(--red)}.feed-item.ev-confirm{border-left:3px solid var(--green)}.feed-item.ev-submit,.feed-item.ev-unreject,.feed-item.ev-unconfirm{border-left:3px solid var(--accent)}.proj-section{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:14px;overflow:hidden}.proj-section.open{border-color:var(--iw-gray-30)}.proj-head{background:var(--iw-secondary-5);border-bottom:1px solid #0000;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.proj-section.open .proj-head{border-bottom-color:var(--line)}.proj-head .spacer{flex:1}.proj-toggle{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.proj-name{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:15px;font-weight:700}.proj-blocker{color:var(--ink-soft);font-size:12.5px}.proj-blocker b.y{color:var(--yellow)}.proj-blocker b.r{color:var(--red)}.proj-body{padding:14px}.proj-body .upload-zone{margin-bottom:16px}.proj-foot{z-index:5;border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;margin:6px -14px -14px;padding:12px 14px;font-size:13px;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 8px #0000000d}.proj-foot .spacer{flex:1}.proj-foot .counts{color:var(--ink-soft)}.proj-foot .counts b.y{color:var(--yellow)}.proj-foot .counts b.r{color:var(--red)}.proj-foot .counts.waiting,.proj-foot .counts.done{flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:14.5px;font-weight:700;display:inline-flex}.proj-foot .counts.waiting{color:var(--iw-info-60)}.proj-foot .counts.done{color:var(--green)}.proj-foot .counts.waiting:before,.proj-foot .counts.done:before{content:"";background:currentColor;border-radius:50%;flex:none;align-self:center;width:9px;height:9px}.proj-foot .counts small{color:var(--ink-soft);font-size:12px;font-weight:400}.badge.warn{border-color:var(--yellow);color:var(--yellow);background:var(--yellow-bg)}.tabs.project-tabs{flex-wrap:wrap;max-width:100%;margin-bottom:16px}.tabs.project-tabs a{align-items:center;gap:6px;display:inline-flex}.tabs.project-tabs .badge{padding:1px 6px;font-size:10.5px}.tabs.project-tabs a.active .badge{color:#fff;background:#ffffff2e;border-color:#0000}.table.board tr.proj td{background:var(--iw-secondary-5);padding-top:8px;padding-bottom:8px;font-size:13px}.table.board tr.proj .proj-name{padding-left:14px;font-size:13px;font-weight:600}.table.board tr.proj .headcount-off{color:var(--yellow);font-weight:700}.table.board tr.sub .sub-name{padding-left:34px}.table.board .rollup{color:var(--ink-soft);margin-left:8px;font-size:12px}.near-names{border:1px solid var(--yellow);background:var(--yellow-bg);border-radius:10px;margin-bottom:12px;padding:10px 12px}.near-names .near-head{margin-bottom:8px;font-size:13px;font-weight:600}.near-names .near-row{flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;display:flex}.near-names .near-name{font-size:14px;font-weight:700}.near-names .near-meta{color:var(--ink-soft);flex:1;font-size:12.5px}.near-names .near-foot{color:var(--ink-soft);margin-top:6px;font-size:12px}.form-grid label.wide-field{grid-column:1/-1}.form-grid label.row-break{grid-column-start:1}.form-grid label.span-2{grid-column:span 2}.pp-row.attendance .val{font-variant-numeric:tabular-nums}.pp-row.attendance.low .val{color:var(--yellow)}.pp-row.attendance.low .lbl{color:var(--yellow);font-weight:600}
