:root{--navy-950:#101828;--navy-900:#162033;--navy-800:#202c42;--blue-700:#175cd3;--blue-600:#2970ff;--blue-100:#dbeafe;--blue-50:#eff6ff;--ink:#172033;--muted:#667085;--line:#e5e9f0;--surface:#fff;--canvas:#f5f7fb;--success:#039855;--warning:#dc6803;--danger:#d92d20;--violet:#7f56d9;--shadow:0 1px 2px #10182808, 0 8px 24px #1018280d}*{box-sizing:border-box}html{background:var(--canvas)}body{color:var(--ink);background:var(--canvas);margin:0;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}svg{width:20px;height:20px}.app-shell{min-height:100vh}.sidebar{z-index:50;color:#d7deea;background:linear-gradient(#121c2e 0%,#19253a 100%);flex-direction:column;width:260px;padding:22px 16px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand-row{justify-content:space-between;align-items:center;padding:0 8px 26px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand strong,.brand small{display:block}.brand strong{color:#fff;letter-spacing:.06em;font-size:14px}.brand small{color:#8fa0b9;margin-top:2px;font-size:11px}.nav-label{color:#65758d;letter-spacing:.13em;margin:4px 12px 9px;font-size:10px;font-weight:700}.sidebar-nav{flex-direction:column;gap:5px;display:flex}.sidebar-nav a{color:#aab6c8;border-radius:9px;align-items:center;gap:12px;height:44px;padding:0 12px;font-weight:600;transition:all .18s;display:flex}.sidebar-nav a svg{width:19px;height:19px}.sidebar-nav a:hover{color:#fff;background:#ffffff0d}.sidebar-nav a.active{color:#fff;background:linear-gradient(90deg,#2970ff47,#2970ff1f);box-shadow:inset 3px 0 #4c8cff}.sidebar-bottom{margin-top:auto}.month-status{background:#ffffff09;border:1px solid #ffffff14;border-radius:11px;margin:0 4px 16px;padding:15px}.month-status .eyebrow{color:#7e91aa}.month-status strong{color:#fff;margin:8px 0;font-size:13px;display:block}.month-status small{color:#8494ab;font-size:11px}.progress{background:#ffffff1a;border-radius:99px;width:100%;height:5px;margin-bottom:8px;overflow:hidden}.progress span{border-radius:inherit;background:#4c8cff;height:100%;display:block}.admin-card{border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:14px 8px 2px;display:flex}.avatar,.top-avatar{color:#234b87;background:#d9e8ff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:750;display:grid}.admin-card strong,.admin-card small{display:block}.admin-card strong{color:#fff;font-size:12px}.admin-card small{color:#8090a7;margin-top:3px;font-size:10px}.main-frame{min-height:100vh;margin-left:260px}.topbar{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe6;border-bottom:1px solid #e5e9f0e6;justify-content:space-between;align-items:center;height:74px;padding:0 32px;display:flex;position:sticky;top:0}.topbar-title{align-items:center;gap:12px;display:flex}.topbar h1{letter-spacing:-.025em;margin:3px 0 0;font-size:20px}.eyebrow{color:#5f6b7d;letter-spacing:.11em;font-size:10px;font-weight:750}.eyebrow.blue{color:#4c8cff}.topbar-actions{align-items:center;gap:10px;display:flex}.role-switch{color:#667085;background:#fff;border:1px solid #dbe2ec;border-radius:9px;align-items:center;gap:7px;height:34px;padding:0 4px 0 10px;display:inline-flex}.role-switch>span{font-size:9px;font-weight:700}.role-switch select{color:#344054;width:92px;height:28px;box-shadow:none;background:#f5f7fa;border:0;padding:0 22px 0 7px;font-size:10px;font-weight:750}.environment-badge{color:#50627c;background:#f5f9ff;border:1px solid #dbe6f7;border-radius:99px;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:11px;font-weight:650;display:inline-flex}.environment-badge i{background:#12b76a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #d1fadf}.icon-button{color:#667085;cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:relative}.icon-button:hover{background:#f2f4f7}.icon-button svg{width:19px;height:19px}.notification i{background:#f04438;border:1.5px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:8px}.top-avatar{width:34px;height:34px;font-size:12px}.content{max-width:1540px;margin:0 auto;padding:28px 32px 48px}.page-stack{flex-direction:column;gap:20px;display:flex}.hero-card{min-height:230px;box-shadow:var(--shadow);background:radial-gradient(circle at 92% 20%,#78a5ff2e,#0000 27%),linear-gradient(135deg,#fff 0%,#f4f8ff 100%);border:1px solid #dce6f5;border-radius:16px;justify-content:space-between;align-items:center;padding:34px 40px;display:flex;overflow:hidden}.hero-card h2{letter-spacing:-.04em;max-width:650px;margin:12px 0 10px;font-size:27px;line-height:1.35}.hero-card p{max-width:680px;color:var(--muted);margin:0;line-height:1.7}.button-row{gap:9px;margin-top:24px;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:39px;padding:0 15px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.button svg{width:16px;height:16px}.button.primary{color:#fff;background:#276ef1;box-shadow:0 5px 14px #276ef133}.button.primary:hover{background:#1f5ed0}.button.ghost{color:#344054;background:#fff;border-color:#d7deea}.button.ghost:hover{background:#fafbfc;border-color:#b5c0d1}.button.danger-ghost{color:#b42318;background:#fff7f6;border-color:#fecdca}.button.small{min-height:32px;padding:0 11px;font-size:11px}.hero-progress{flex-direction:column;flex:0 0 180px;align-items:center;width:180px;display:flex}.progress-ring{--progress:67;background:conic-gradient(#2970ff calc(var(--progress) * 1%), #e4ebf6 0);border-radius:50%;place-items:center;width:126px;height:126px;display:grid}.progress-ring:before{content:"";background:#fff;border-radius:50%;width:102px;height:102px;position:absolute}.progress-ring span{z-index:1;text-align:center;position:relative}.progress-ring strong,.progress-ring small{display:block}.progress-ring strong{letter-spacing:-.04em;font-size:25px}.progress-ring small{color:var(--muted);margin-top:2px;font-size:10px}.progress-caption{text-align:center;margin-top:10px}.progress-caption strong,.progress-caption span{display:block}.progress-caption strong{font-size:12px}.progress-caption span{color:var(--muted);margin-top:3px;font-size:10px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-card{border:1px solid var(--line);min-height:116px;box-shadow:var(--shadow);background:#fff;border-radius:13px;align-items:center;gap:16px;padding:21px;display:flex}.stat-icon{border-radius:11px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid}.stat-icon svg{width:21px;height:21px}.blue-bg{color:#175cd3;background:#eaf2ff}.orange-bg{color:#dc6803;background:#fff1e7}.violet-bg{color:#6941c6;background:#f0eaff}.green-bg{color:#027a48;background:#e5f8ee}.stat-card small,.stat-card strong,.stat-card .trend{display:block}.stat-card small{color:var(--muted);font-size:11px;font-weight:650}.stat-card strong{letter-spacing:-.03em;margin:6px 0 4px;font-size:22px}.stat-card strong em{color:#667085;margin-left:3px;font-size:11px;font-style:normal;font-weight:600}.trend{color:#667085;font-size:10px}.trend.up{color:#027a48}.trend.warn{color:#b54708}.dashboard-grid{grid-template-columns:1.2fr .8fr;gap:20px;display:grid}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:24px}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.panel-heading h3{letter-spacing:-.02em;margin:5px 0 0;font-size:16px}.pill{white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;min-height:24px;padding:0 9px;font-size:10px;font-weight:750;display:inline-flex}.pill.neutral{color:#475467;background:#f2f4f7}.pill.success{color:#027a48;background:#ecfdf3}.pill.warning{color:#b54708;background:#fffaeb}.pill.danger{color:#b42318;background:#fef3f2}.pill.info{color:#175cd3;background:#eff8ff}.pill.violet{color:#6941c6;background:#f4f3ff}.text-link{color:#175cd3;align-items:center;gap:2px;font-size:11px;font-weight:700;display:inline-flex}.text-link svg{width:13px;height:13px}.workflow-list{flex-direction:column;display:flex}.workflow-item{grid-template-columns:30px 1fr auto;align-items:start;gap:12px;min-height:58px;display:grid;position:relative}.workflow-item:not(:last-child):after{content:"";background:#e4e7ec;width:1px;position:absolute;top:31px;bottom:4px;left:14px}.workflow-item>span{z-index:1;color:#98a2b3;background:#fff;border:1px solid #d0d5dd;border-radius:50%;place-items:center;width:29px;height:29px;font-size:10px;font-weight:700;display:grid;position:relative}.workflow-item>span svg{width:14px;height:14px}.workflow-item.done>span{color:#027a48;background:#ecfdf3;border-color:#a6f4c5}.workflow-item.current>span{color:#fff;background:#2970ff;border-color:#84adff;box-shadow:0 0 0 4px #eaf2ff}.workflow-item div strong,.workflow-item div small{display:block}.workflow-item div strong{margin-top:2px;font-size:12px}.workflow-item div small{color:#667085;margin-top:4px;font-size:10px}.workflow-item em{color:#667085;margin-top:4px;font-size:10px;font-style:normal}.workflow-item.done em{color:#027a48}.workflow-item.current em{color:#175cd3;font-weight:700}.exception-list{flex-direction:column;display:flex}.exception-row{border-bottom:1px solid #f0f2f5;align-items:center;gap:10px;padding:12px 0;display:flex}.exception-row:last-child{border-bottom:0}.avatar.coral{color:#b42318;background:#fee4e2}.avatar.blue{color:#175cd3;background:#dbeafe}.avatar.violet{color:#6941c6;background:#ebe9fe}.avatar.green{color:#027a48;background:#d1fadf}.exception-row>div{flex:1;min-width:0}.exception-row strong,.exception-row span{display:block}.exception-row strong{font-size:11px}.exception-row strong small{color:#667085;margin-left:4px;font-size:9px;font-weight:600}.exception-row div>span{color:#667085;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:10px;overflow:hidden}.page-header{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.page-header h2{letter-spacing:-.035em;margin:6px 0 4px;font-size:23px}.page-header p{color:var(--muted);margin:0;line-height:1.6}.toolbar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:16px;display:flex}.search-field{flex:1;min-width:200px;position:relative}.search-field svg{color:#98a2b3;width:17px;height:17px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field,.search-field input,select,textarea{color:#344054;background:#fff;border:1px solid #d5dae3;border-radius:8px;outline:0;width:100%}.field,.search-field input,select{height:38px;padding:0 12px}.search-field input{padding-left:38px}textarea{resize:vertical;min-height:164px;padding:12px;line-height:1.6}.field:focus,.search-field input:focus,select:focus,textarea:focus{border-color:#84adff;box-shadow:0 0 0 3px #eaf2ff}.select-wrap{width:150px}.table-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;overflow:hidden}.table-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.table-header h3{margin:0;font-size:14px}.table-header small{color:var(--muted)}.data-table{border-collapse:collapse;width:100%}.data-table th{color:#667085;text-align:left;white-space:nowrap;background:#f8f9fb;height:42px;padding:0 15px;font-size:10px;font-weight:700}.data-table td{color:#475467;vertical-align:middle;border-top:1px solid #edf0f4;height:60px;padding:10px 15px;font-size:11px}.data-table tbody tr:hover{background:#fafcff}.person-cell{align-items:center;gap:10px;display:flex}.person-cell strong,.person-cell small{display:block}.person-cell strong{color:#1d2939;font-size:12px}.person-cell small{color:#667085;margin-top:3px;font-size:9px}.number{font-variant-numeric:tabular-nums}.empty-state{color:#98a2b3;text-align:center;padding:60px 20px}.table-footer{border-top:1px solid var(--line);color:#667085;justify-content:space-between;align-items:center;min-height:48px;padding:0 18px;font-size:10px;display:flex}.pagination{gap:5px;display:flex}.pagination button{color:#667085;background:#fff;border:1px solid #e1e5eb;border-radius:6px;width:28px;height:28px}.pagination button.active{color:#fff;background:#2970ff;border-color:#2970ff}.profile-grid{grid-template-columns:280px minmax(0,1fr);gap:20px;display:grid}.profile-card{border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:14px;align-self:start;padding:28px 22px}.profile-avatar{color:#175cd3;background:linear-gradient(145deg,#e6f0ff,#cfe1ff);border-radius:22px;place-items:center;width:76px;height:76px;margin:0 auto 14px;font-size:25px;font-weight:800;display:grid}.profile-card h3{margin:0;font-size:19px}.profile-card>p{color:#667085;margin:6px 0 14px;font-size:11px}.profile-meta{border-top:1px solid var(--line);text-align:left;margin-top:22px;padding-top:20px}.meta-row{justify-content:space-between;gap:15px;padding:7px 0;font-size:10px;display:flex}.meta-row span{color:#98a2b3}.meta-row strong{text-align:right;font-weight:650}.profile-content{min-width:0}.tabs{border:1px solid var(--line);background:#fff;border-radius:10px;gap:4px;padding:5px;display:flex}.tabs button{color:#667085;cursor:pointer;background:0 0;border:0;border-radius:7px;height:34px;padding:0 14px;font-size:11px;font-weight:650}.tabs button.active{color:#175cd3;background:#eff6ff}.detail-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;margin-top:14px;padding:24px}.detail-section+.detail-section{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.detail-section h4{margin:0 0 17px;font-size:13px}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 28px;display:grid}.info-item span,.info-item strong{display:block}.info-item span{color:#98a2b3;margin-bottom:6px;font-size:9px}.info-item strong{font-size:11px;font-weight:600}.timeline{position:relative}.timeline-row{min-height:67px;padding-left:25px;position:relative}.timeline-row:before{content:"";background:#fff;border:2px solid #5b8ff9;border-radius:50%;width:7px;height:7px;position:absolute;top:8px;left:5px}.timeline-row:not(:last-child):after{content:"";background:#d8e2f0;width:1px;position:absolute;top:19px;bottom:0;left:9px}.timeline-row small{color:#98a2b3;font-size:9px}.timeline-row strong{margin:4px 0 3px;font-size:11px;display:block}.timeline-row span{color:#667085;font-size:10px}.leave-summary{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini-stat{border:1px solid var(--line);background:#fafcff;border-radius:10px;padding:17px}.mini-stat span,.mini-stat strong{display:block}.mini-stat span{color:#667085;font-size:10px}.mini-stat strong{margin-top:7px;font-size:20px}.mini-stat strong em{color:#98a2b3;font-size:10px;font-style:normal}.stepper{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:0;padding:16px 22px;display:grid}.step{align-items:center;gap:10px;display:flex;position:relative}.step:not(:last-child):after{content:"";background:#dfe3e9;height:1px;position:absolute;top:14px;left:40px;right:15px}.step>span{z-index:1;color:#98a2b3;background:#fff;border:1px solid #d0d5dd;border-radius:50%;place-items:center;width:29px;height:29px;font-size:10px;font-weight:750;display:grid;position:relative}.step.active>span,.step.done>span{color:#fff;background:#2970ff;border-color:#2970ff}.step div{z-index:1;background:#fff;padding-right:8px;position:relative}.step strong,.step small{display:block}.step strong{font-size:11px}.step small{color:#98a2b3;margin-top:2px;font-size:9px}.upload-zone{text-align:center;background:#fbfcfe;border:1.5px dashed #b9c6d8;border-radius:13px;place-items:center;min-height:245px;padding:35px 20px;display:grid}.upload-zone.dragging{background:#f2f7ff;border-color:#2970ff}.upload-icon{color:#175cd3;background:#eaf2ff;border-radius:13px;place-items:center;width:50px;height:50px;margin:0 auto 14px;display:grid}.upload-zone h3{margin:0;font-size:14px}.upload-zone p{color:#667085;margin:8px 0 18px;font-size:10px}.upload-zone input{display:none}.upload-note{color:#98a2b3;margin-top:12px;font-size:9px}.file-summary{background:#f7faff;border:1px solid #cfe0fb;border-radius:10px;align-items:center;gap:12px;padding:16px;display:flex}.file-summary>span{color:#175cd3;background:#e3edff;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.file-summary>div{flex:1}.file-summary strong,.file-summary small{display:block}.file-summary small{color:#667085;margin-top:4px;font-size:9px}.results-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.check-list{flex-direction:column;gap:11px;display:flex}.check-row{align-items:center;gap:9px;display:flex}.check-row>span{border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.check-row>span svg{width:13px;height:13px}.check-row.ok>span{color:#027a48;background:#d1fadf}.check-row.warn>span{color:#b54708;background:#fef0c7}.check-row div{flex:1}.check-row strong,.check-row small{display:block}.check-row strong{font-size:10px}.check-row small{color:#98a2b3;margin-top:3px;font-size:9px}.error-box{color:#7a2e0e;background:#fffaeb;border:1px solid #fedf89;border-radius:9px;padding:13px;font-size:10px;line-height:1.6}.column-tags{flex-wrap:wrap;gap:6px;display:flex}.column-tag{color:#526076;background:#f8fafc;border:1px solid #dde5ef;border-radius:6px;padding:5px 8px;font-size:9px}.split-layout{grid-template-columns:.9fr 1.1fr;gap:18px;display:grid}.form-group{margin-bottom:16px}.form-group label{color:#475467;margin-bottom:7px;font-size:10px;font-weight:700;display:block}.form-hint{color:#667085;margin-top:6px;font-size:9px;line-height:1.5}.preview-rows{flex-direction:column;gap:8px;display:flex}.schedule-row{background:#fcfdff;border:1px solid #e6eaf0;border-radius:8px;grid-template-columns:74px 72px 58px 1fr auto;align-items:center;gap:8px;padding:11px 12px;font-size:10px;display:grid}.schedule-row.error{background:snow;border-color:#fecdca}.schedule-row strong{font-size:10px}.summary-strip{background:#f7faff;border:1px solid #dce6f5;border-radius:10px;flex-wrap:wrap;align-items:center;gap:18px;padding:13px 15px;display:flex}.summary-strip span{color:#667085;font-size:10px}.summary-strip strong{color:#1d2939;margin-left:5px}.filters-row{align-items:center;gap:8px;display:flex}.filters-row select{width:auto;min-width:130px}.attendance-layout{grid-template-columns:1fr;gap:18px;display:grid}.summary-table tr.selected{background:#f2f7ff}.summary-table tbody tr{cursor:pointer}.judgment-dot{align-items:center;gap:6px;display:inline-flex}.judgment-dot:before{content:"";background:#98a2b3;border-radius:50%;width:6px;height:6px}.judgment-dot.normal:before{background:#12b76a}.judgment-dot.warning:before{background:#f79009}.judgment-dot.danger:before{background:#f04438}.judgment-dot.info:before{background:#2e90fa}.metric-row{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px;display:grid}.metric{border:1px solid var(--line);background:#fafbfc;border-radius:9px;padding:13px}.metric span,.metric strong{display:block}.metric span{color:#98a2b3;font-size:9px}.metric strong{margin-top:5px;font-size:15px}.certificate-layout{grid-template-columns:300px minmax(0,1fr);gap:20px;display:grid}.certificate-controls{align-self:start}.certificate-sheet-wrap{border:1px solid var(--line);background:#e9edf3;border-radius:13px;padding:24px;overflow:auto}.certificate-sheet{color:#111;background:#fff;width:100%;max-width:700px;min-height:920px;margin:0 auto;padding:68px 66px;font-family:Batang,AppleMyungjo,serif;box-shadow:0 8px 28px #10182821}.certificate-sheet h2{letter-spacing:.36em;text-align:center;text-indent:.36em;margin:0 0 56px;font-size:29px}.cert-table{border-collapse:collapse;width:100%}.cert-table th,.cert-table td{border:1px solid #333;height:52px;padding:10px 13px;font-size:13px}.cert-table th{text-align:center;background:#f6f6f6;width:22%;font-weight:600}.cert-purpose{text-align:center;margin:42px 0;font-size:14px;line-height:2}.cert-statement{text-align:center;margin:60px 0 70px;font-size:15px}.cert-date{text-align:center;margin-bottom:55px;font-size:14px}.cert-company{text-align:center}.cert-company strong{letter-spacing:.18em;margin-top:12px;font-size:17px;display:block}.cert-seal{display:inline-block;position:relative}.cert-seal:after{content:"직인";color:#be1e1ebf;letter-spacing:0;border:2px solid #be1e1eb3;border-radius:50%;place-items:center;width:34px;height:34px;font-size:10px;display:grid;position:absolute;top:-9px;right:-38px;transform:rotate(-8deg)}.notice{color:#184c75;background:#eff8ff;border:1px solid #b2ddff;border-radius:9px;align-items:flex-start;gap:9px;padding:13px 15px;font-size:10px;line-height:1.6;display:flex}.notice svg{flex:none;width:16px;height:16px;margin-top:1px}.back-link{color:#667085;align-items:center;gap:4px;font-size:11px;font-weight:650;display:inline-flex}.back-link svg{width:14px;height:14px;transform:rotate(180deg)}.bordered{background:#fff;border:1px solid #d5dae3}.access-denied{text-align:center;max-width:600px;margin:80px auto;padding:50px}.access-denied .stat-icon{margin:0 auto 18px}.access-denied h2{margin:0 0 10px}.access-denied p{color:#667085;margin:0 0 22px}.access-denied small{color:#667085;margin-top:18px;display:block}.employee-hero{min-height:214px}.leave-balance{background:#ffffffc7;border:1px solid #cdddf7;border-radius:14px;flex:0 0 210px;width:210px;padding:24px;box-shadow:0 9px 24px #2970ff14}.leave-balance span,.leave-balance strong,.leave-balance small{display:block}.leave-balance span{color:#52627a;font-size:11px;font-weight:700}.leave-balance strong{color:#175cd3;letter-spacing:-.04em;margin:9px 0 7px;font-size:31px}.leave-balance strong em{color:#667085;margin-left:3px;font-size:12px;font-style:normal}.leave-balance small{color:#667085;font-size:10px}.event-list{flex-direction:column;display:flex}.event-list-row{border-bottom:1px solid #edf0f4;align-items:center;gap:10px;min-height:58px;padding:10px 0;display:flex}.event-list-row:last-child{border-bottom:0}.event-list-row time{color:#667085;font-variant-numeric:tabular-nums;width:38px;font-size:10px}.event-list-row>div{flex:1;min-width:0}.event-list-row strong,.event-list-row small{display:block}.event-list-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.event-list-row small{color:#667085;margin-top:4px;font-size:9px}.event-type{color:#344054;white-space:nowrap;background:#f2f4f7;border-radius:6px;justify-content:center;align-items:center;min-height:23px;padding:0 8px;font-size:9px;font-weight:750;display:inline-flex}.type-연차,.type-시간연차,.type-오전반차,.type-오후반차{color:#6941c6;background:#f0eaff}.type-외근,.type-출장{color:#175cd3;background:#eaf2ff}.type-교육{color:#b54708;background:#fff3e8}.type-재택{color:#027a48;background:#e5f8ee}.type-개인일정{color:#475467;background:#eaecf0}.calendar-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:16px 20px;display:flex}.calendar-toolbar h3{margin:4px 0 0;font-size:17px}.calendar-weekdays{border-bottom:1px solid var(--line);background:#f8fafc;grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekdays span{color:#667085;text-align:center;padding:10px;font-size:9px;font-weight:700}.calendar-weekdays span:first-child{color:#d92d20}.calendar-weekdays span:last-child{color:#175cd3}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{color:#344054;text-align:left;cursor:pointer;background:#fff;border:1px solid #edf0f4;border-top:0;border-left:0;min-width:0;min-height:106px;padding:8px}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#f8fbff}.calendar-day.selected{background:#f2f7ff;position:relative;box-shadow:inset 0 0 0 2px #84adff}.calendar-day.empty{cursor:default;background:#fafbfc}.day-number{margin-bottom:6px;font-size:10px;font-weight:700;display:block}.calendar-day:nth-child(7n+1) .day-number{color:#d92d20}.calendar-day:nth-child(7n) .day-number{color:#175cd3}.day-events{flex-direction:column;gap:3px;display:flex}.calendar-event{color:#526076;text-overflow:ellipsis;white-space:nowrap;background:#f2f4f7;border-radius:4px;padding:3px 4px;font-size:8px;overflow:hidden}.calendar-event b{font-weight:800}.calendar-event.type-연차,.calendar-event.type-시간연차,.calendar-event.type-오전반차,.calendar-event.type-오후반차{color:#6941c6;background:#f0eaff}.calendar-event.type-외근,.calendar-event.type-출장{color:#175cd3;background:#eaf2ff}.calendar-event.type-교육{color:#b54708;background:#fff3e8}.selected-day-detail{padding:20px}.selected-day-detail .panel-heading{margin-bottom:8px}.empty-state.compact{padding:24px 12px}.schedule-form-panel{position:sticky;top:92px}.short-textarea{min-height:84px}.success-notice{color:#05603a;background:#ecfdf3;border-color:#abefc6}.approval-guide{border-top:1px solid var(--line);flex-direction:column;gap:7px;margin-top:18px;padding-top:16px;display:flex}.approval-guide strong{margin-bottom:2px;font-size:10px}.approval-guide span{color:#667085;font-size:9px;line-height:1.5}.calendar-entry-form{flex-direction:column;display:flex}.schedule-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.calendar-entry-form .form-group{margin-bottom:13px}.calendar-entry-form textarea{width:100%}.calendar-form-message{background:#f8fafc;border-radius:7px;margin:0 0 12px;padding:9px 10px}.calendar-form-message.success{background:#ecfdf3}.calendar-form-message.error{background:#fef3f2}.calendar-submit{width:100%}.calendar-nav{flex-wrap:nowrap;margin-top:0}.calendar-leave-type{color:#6941c6;background:#f0eaff}.calendar-schedule-type{color:#175cd3;background:#eaf2ff}.calendar-event.leave-event{color:#6941c6;background:#f0eaff}.calendar-event.schedule-event{color:#175cd3;background:#eaf2ff}.calendar-detail-row{flex-wrap:wrap}.calendar-detail-row .inline-action{flex:none}.schedule-tabs{align-self:flex-start}.schedule-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-management-table{min-width:1060px}.schedule-management-table td>span[style]{color:#667085!important}.inline-actions{gap:5px;display:flex}.role-card-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.role-card{border:1px solid var(--line);min-height:156px;box-shadow:var(--shadow);background:#fff;border-radius:13px;grid-template-columns:44px 1fr;gap:14px;padding:22px;display:grid;position:relative}.role-card-icon{border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.admin-role .role-card-icon{color:#6941c6;background:#f0eaff}.hr-role .role-card-icon{color:#175cd3;background:#eaf2ff}.employee-role .role-card-icon{color:#027a48;background:#e5f8ee}.role-card h3{margin:4px 0 7px;font-size:16px}.role-card p{color:#667085;margin:0;font-size:10px;line-height:1.55}.role-card>strong{color:#475467;font-size:10px;position:absolute;top:18px;right:18px}.compact-select{width:100px;height:32px;padding:0 8px;font-size:10px}.permission-table td:not(:first-child),.permission-table th:not(:first-child){text-align:center}.permission-mark{border-radius:50%;place-items:center;width:24px;height:24px;margin:auto;display:grid}.permission-mark.allowed{color:#027a48;background:#d1fadf}.permission-mark.allowed svg{width:13px;height:13px}.permission-mark.denied{color:#98a2b3;background:#f2f4f7}.role-badge{color:#175cd3;background:#eff6ff;border-radius:99px;align-items:center;min-height:28px;padding:0 10px;font-size:10px;font-weight:750;display:inline-flex}.table-scroll{overflow-x:auto}.no-shadow{box-shadow:none}.muted-block{color:#98a2b3;margin-top:4px;display:block}.panel-description{color:var(--muted);margin:-4px 0 18px;line-height:1.65}.employee-form-disclosure{box-shadow:var(--shadow);background:#fff;border:1px solid #bfd2f7;border-radius:13px;overflow:hidden}.employee-form-disclosure>summary{color:#175cd3;cursor:pointer;background:#f4f8ff;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;list-style:none;display:flex}.employee-form-disclosure>summary::-webkit-details-marker{display:none}.employee-form-disclosure>summary>span{grid-template-columns:28px auto;align-items:center;column-gap:10px;display:grid}.employee-form-disclosure>summary svg{grid-row:1/3;width:19px;height:19px}.employee-form-disclosure>summary strong,.employee-form-disclosure>summary small{display:block}.employee-form-disclosure>summary strong{font-size:13px}.employee-form-disclosure>summary small{color:#667085;margin-top:3px;font-size:9px;font-weight:500}.employee-form-disclosure>summary em{font-size:10px;font-style:normal;font-weight:750}.employee-management-form{border-top:1px solid var(--line);padding:20px}.employee-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px;display:grid}.employee-address-field{grid-column:span 2}.employee-form-actions{justify-content:flex-end;display:flex}.employee-form-message{border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:10px;line-height:1.55}.employee-form-message.success{color:#05603a;background:#ecfdf3}.employee-form-message.error{color:#b42318;background:#fef3f2}.employee-management-panel{scroll-margin-top:86px}.employee-management-panel .employee-management-form{border-top:0;padding:0}.employee-delete-panel{background:snow;border-color:#fecdca;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;display:grid}.employee-delete-panel strong{color:#b42318;font-size:12px}.employee-delete-panel p{color:#667085;margin:5px 0 0;font-size:10px;line-height:1.55}.employee-delete-panel .employee-form-message{grid-column:1/-1;margin:0}.ledger-panel{margin-top:18px}.danger-notice{color:#b42318;background:#fef3f2;border-color:#fecdca}.leave-policy-notice{color:#53389e;background:#f4f3ff;border-color:#d9d6fe}.negative-stat{background:#fff7f6;border-color:#fecdca}.negative-stat strong,.negative-value{color:#b42318!important}.standalone-message{place-items:center;min-height:100vh;padding:40px 20px;display:grid}.access-denied h1{margin:0 0 10px;font-size:22px}.login-page{background:#fff;grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:radial-gradient(circle at 85% 18%,#4883ff59,#0000 29%),linear-gradient(145deg,#101a2c,#1a2943);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(36px,7vw,90px);display:flex}.login-brand{letter-spacing:.08em;align-items:center;gap:12px;display:flex}.login-brand-panel h1{letter-spacing:-.055em;max-width:620px;margin:14px 0;font-size:clamp(32px,4vw,54px);line-height:1.17}.login-brand-panel p{color:#aebbd0;max-width:620px;margin:0;font-size:15px;line-height:1.8}.login-points{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.login-points li{color:#c8d4e6;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:99px;padding:9px 12px;font-size:11px}.login-form-panel{background:#f8fafc;place-items:center;padding:40px;display:grid}.login-form-wrap{width:min(420px,100%)}.login-form-wrap h2{letter-spacing:-.04em;margin:8px 0;font-size:27px}.login-form-wrap>p{color:var(--muted);margin:0 0 28px}.login-form{flex-direction:column;gap:16px;display:flex}.login-form label>span,.leave-form label>span{color:#475467;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.login-submit{width:100%;min-height:45px;margin-top:3px}.form-message{margin:0;font-size:11px;line-height:1.55}.form-message.error,.error-text{color:#b42318}.form-message.success,.success-text{color:#027a48}.demo-accounts{background:#fff;border:1px solid #dce3ec;border-radius:10px;flex-direction:column;gap:6px;margin-top:22px;padding:16px;display:flex}.demo-accounts strong{margin-bottom:2px;font-size:11px}.demo-accounts code{color:#475467;font-size:10px}.demo-accounts small{color:#b54708;margin-top:5px;font-size:9px;line-height:1.5}.leave-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.leave-form .full{grid-column:1/-1}.compact-textarea{min-height:78px}.form-submit-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.form-submit-row>span{flex:1}.inline-action{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.review-form{grid-template-columns:1fr auto;align-items:center;gap:6px;min-width:250px;display:grid}.review-form .field{min-width:150px;height:32px;font-size:10px}.review-form>div{gap:5px;display:flex}.review-form>small{grid-column:1/-1;line-height:1.4}.review-result{color:#344054;min-width:130px;font-weight:650;display:block}.review-result small{color:#667085;margin-top:4px;font-weight:400;display:block}.account-access-form{grid-template-columns:95px 95px auto;align-items:center;gap:6px;min-width:330px;display:grid}.account-access-form select{height:32px;padding:0 7px;font-size:10px}.account-access-form>small{grid-column:1/-1;line-height:1.4}.accrual-action{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.mobile-only{display:none}@media (max-width:1180px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.split-layout{grid-template-columns:1fr}.certificate-layout{grid-template-columns:260px minmax(0,1fr)}.calendar-layout{grid-template-columns:1fr}.schedule-form-panel{position:static}.role-card-grid{grid-template-columns:1fr}.schedule-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:860px){.mobile-only{display:grid}.sidebar{width:270px;transition:transform .2s;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-scrim{z-index:45;background:#10182880;border:0;position:fixed;inset:0}.main-frame{margin-left:0}.content{padding:22px 18px 40px}.topbar{height:66px;padding:0 18px}.environment-badge,.role-switch>span{display:none}.role-switch{padding-left:4px}.hero-card{padding:28px}.hero-progress{display:none}.profile-grid,.certificate-layout{grid-template-columns:1fr}.profile-card{text-align:left}.profile-avatar{margin-left:0}.certificate-controls{order:0}.certificate-sheet-wrap{order:1}.results-grid{grid-template-columns:1fr}.data-table{min-width:760px}.table-card{overflow-x:auto}.metric-row{grid-template-columns:repeat(3,1fr)}.leave-balance{display:none}.login-page{grid-template-columns:1fr}.login-brand-panel{min-height:360px;padding:36px 28px}.login-points{margin-top:28px}.login-form-panel{padding:48px 22px}.leave-form,.employee-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:86px;padding:5px}.calendar-event{font-size:0}.calendar-event b{font-size:8px}}@media (max-width:580px){.stat-grid{grid-template-columns:1fr}.hero-card h2{font-size:22px}.page-header{flex-direction:column;align-items:flex-start}.toolbar,.filters-row{flex-direction:column;align-items:stretch}.select-wrap,.filters-row select{width:100%}.stepper{grid-template-columns:1fr;gap:13px}.step:not(:last-child):after{display:none}.info-grid,.leave-summary,.employee-form-grid{grid-template-columns:1fr}.employee-address-field{grid-column:auto}.employee-delete-panel{grid-template-columns:1fr}.employee-delete-panel form,.employee-delete-panel button{width:100%}.schedule-row{grid-template-columns:1fr 1fr}.schedule-row span:nth-child(4){grid-column:1/-1}.metric-row{grid-template-columns:repeat(2,1fr)}.certificate-sheet{min-width:620px}.role-switch{max-width:88px}.role-switch select{width:80px}.calendar-day{min-height:62px}.calendar-toolbar{align-items:flex-start;gap:12px;padding:14px}.calendar-toolbar h3{font-size:15px}.calendar-nav .button{display:none}.schedule-date-grid{grid-template-columns:1fr;gap:0}.selected-day-detail{padding:14px}.calendar-detail-row{align-items:flex-start}.calendar-detail-row>div{flex-basis:calc(100% - 78px)}.day-events{gap:2px}.calendar-event{border-radius:99px;height:6px;padding:0}.calendar-event b{font-size:0}.schedule-summary-grid{grid-template-columns:1fr}.topbar-actions .role-badge,.topbar-actions .top-avatar{display:none}.topbar-actions{gap:4px}.leave-form{grid-template-columns:1fr}.leave-form .full{grid-column:1}.form-submit-row{flex-direction:column;align-items:stretch}.login-brand-panel h1{font-size:30px}}@media print{.sidebar,.topbar,.certificate-controls,.page-header,.no-print{display:none!important}.main-frame{margin:0}.content{max-width:none;padding:0}.certificate-layout{display:block}.certificate-sheet-wrap{background:#fff;border:0;padding:0}.certificate-sheet{width:210mm;min-height:297mm;box-shadow:none;padding:28mm 22mm}}
