@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root {
  --bg:#f0f2f7; --surface:#fff; --surface2:#f8f9fc;
  --border:#e2e6ef; --border2:#edf0f7;
  --text:#1a1d2e; --text2:#4b5568; --text3:#6b7280;
  --accent:#3b5bdb; --accent2:#eef2ff; --accent3:#c7d2fe;
  --green:#0d9e6f; --green2:#ecfdf5;
  --red:#e53e3e; --red2:#fff5f5;
  --orange:#d97706; --orange2:#fffbeb;
  --r:10px; --r2:6px;
  --sh:0 1px 4px rgba(0,0,0,.06);
  --sh2:0 4px 16px rgba(0,0,0,.1);
  --fs-delta: 0px;
}
html[data-font-size="small"]  { --fs-delta: -1px; }
html[data-font-size="medium"] { --fs-delta: 0px; }
html[data-font-size="large"]  { --fs-delta: 2px; }
html[data-font-size="xlarge"] { --fs-delta: 4px; }
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Noto Sans JP','Noto Sans KR',sans-serif;background:var(--bg);color:var(--text);font-size:calc(13px + var(--fs-delta));line-height:1.5;min-height:100vh;}

/* LAYOUT */
.layout{display:flex;min-height:100vh;}
.sidebar{width:200px;min-width:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;transition:width .25s ease;}
/* 사이드바 접기/펼치기 토글 */
.sidebar-toggle-btn{margin-left:auto;flex-shrink:0;width:22px;height:22px;border:1px solid var(--border);border-radius:5px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text3);padding:0;transition:background .15s,color .15s;}
.sidebar-toggle-btn:hover{background:var(--bg);color:var(--text);}
.sidebar-toggle-btn svg{transition:transform .25s ease;}
.sidebar.collapsed .sidebar-toggle-btn svg{transform:rotate(180deg);}
/* 접힌 상태 */
.sidebar.collapsed{width:52px;}
.sidebar.collapsed .logo{justify-content:center;padding:14px 6px;gap:6px;}
.sidebar.collapsed .logo-text-block{display:none;}
.sidebar.collapsed .sidebar-toggle-btn{margin-left:0;}
.sidebar.collapsed .nav-sec{display:none;}
.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0;}
.sidebar.collapsed .nav-item>span{display:none;}
.sidebar.collapsed .sidebar-foot{padding:8px 6px;}
.sidebar.collapsed .sidebar-foot>div{flex-direction:column;align-items:center;gap:4px;}
.sidebar.collapsed .lang-btn{min-width:0;width:36px;height:32px;padding:0;justify-content:center;}
.sidebar.collapsed .lang-btn>span{display:none;}
.sidebar.collapsed #btn-fs-minus,.sidebar.collapsed #btn-fs-plus{display:none;}
.sidebar.collapsed .btn-logout>span{display:none;}
/* 접힌 상태 hover 툴팁 */
#sidebar-nav-tip{position:fixed;z-index:9999;background:#1e293b;color:#f8fafc;padding:5px 10px;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.25);display:none;}
/* 인쇄 시 토글 버튼 숨김, 접힘 상태 강제 해제 */
@media print{.sidebar-toggle-btn{display:none!important;}.sidebar.collapsed{width:200px!important;}}
.logo{padding:14px 14px 12px;border-bottom:1px solid var(--border2);display:flex;align-items:center;gap:9px;}
.logo-ww-img{width:26px;height:20px;background:url('../WW_LOGO.jpg') no-repeat top center/auto 30px;flex-shrink:0;}
.logo-text-block{display:flex;flex-direction:column;line-height:1.15;min-width:0;}
.logo-name{font-size:calc(15px + var(--fs-delta));font-weight:800;letter-spacing:-0.4px;color:var(--accent);}
.logo-sub{font-size:calc(9.5px + var(--fs-delta));font-weight:500;color:var(--text3);letter-spacing:0.1px;white-space:nowrap;}
.nav{padding:8px 0;flex:1;}
.nav-sec{padding:10px 13px 3px;font-size:calc(11px + var(--fs-delta));font-weight:700;color:var(--accent);letter-spacing:1px;text-transform:uppercase;}
.nav-sec~.nav-sec{border-top:1px solid var(--border);padding-top:12px;margin-top:6px;}
.nav-item{display:flex;align-items:center;gap:8px;padding:8px 13px;cursor:pointer;color:var(--text2);font-size:calc(13px + var(--fs-delta));border-left:3px solid transparent;transition:all .15s;}
.nav-item:hover{background:var(--bg);color:var(--text);}
.nav-item.active{background:var(--accent2);color:var(--accent);border-left-color:var(--accent);font-weight:500;}
.nav-item svg{width:14px;height:14px;flex-shrink:0;}
.sidebar-foot{padding:10px 13px;border-top:1px solid var(--border2);}
.lang-btn{width:100%;padding:7px;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2);font-size:calc(12px + var(--fs-delta));font-family:inherit;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;}
.lang-btn:hover{background:var(--accent2);color:var(--accent);border-color:var(--accent3);}
.btn-fs{flex-shrink:0;width:30px;padding:7px 0;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface2);font-size:calc(11px + var(--fs-delta));font-family:inherit;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:600;transition:all .15s;}
.btn-fs:hover{background:var(--accent2);color:var(--accent);border-color:var(--accent3);}
.btn-fs:disabled{opacity:.35;cursor:not-allowed;pointer-events:none;}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 18px;height:50px;display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:10;overflow:hidden;}
.topbar-l{display:flex;align-items:center;gap:8px;}
.topbar-c{flex:1;display:flex;justify-content:center;align-items:center;min-width:0;}
.topbar-r{display:flex;align-items:center;gap:7px;}
@keyframes riseAndBounce{0%{transform:translateY(52px);opacity:0;}40%{transform:translateY(-8px);opacity:1;}58%{transform:translateY(5px);}72%{transform:translateY(-3px);}83%{transform:translateY(2px);}91%{transform:translateY(-1px);}100%{transform:translateY(0);opacity:1;}}
@keyframes balloonFadeOut{to{opacity:0;transform:translateY(8px);}}
.payroll-balloon{display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;font-size:calc(12px + var(--fs-delta));font-weight:600;white-space:nowrap;animation:riseAndBounce 1.6s cubic-bezier(.22,1,.36,1) .3s both;}
.payroll-balloon-text{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;}
.payroll-balloon-confirm{flex-shrink:0;padding:4px 12px;color:#fff;border:none;border-radius:6px;font-size:calc(11px + var(--fs-delta));font-weight:700;cursor:pointer;white-space:nowrap;}
.payroll-balloon-confirm:disabled{background:#94a3b8;cursor:not-allowed;}
.page-title{font-size:calc(14px + var(--fs-delta));font-weight:600;}
.content{padding:16px 18px;flex:1;overflow-y:auto;}
.page{display:none;} .page.active{display:block;}

/* BTNS */
button:disabled,button[disabled],.btn:disabled,.btn[disabled],input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;}
.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--r2);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:calc(12px + var(--fs-delta));font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s;}
.btn:hover{background:var(--bg);}
.btn svg{width:12px;height:12px;}
.btn-primary{background:var(--accent);color:#fff;border-color:#7a88c9;}
.btn-primary:hover{background:#2f4bc4;border-color:#2f4bc4;}
.btn-success{background:var(--green);color:#fff;border-color:var(--green);}
.btn-success:hover{opacity:.9;}
.btn-danger{background:var(--red);color:#fff;border-color:var(--red);}
.btn-danger:hover{opacity:.9;}
.btn-ai{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;font-weight:500;}
.btn-ai:hover{background:linear-gradient(135deg,#4f52d4,#7c3cf6);color:#fff;}
.btn-discard:not(:disabled){background:var(--orange);color:#fff;border-color:var(--orange);}
.btn-discard:not(:disabled):hover{opacity:.88;}
.btn-discard:disabled{background:var(--surface2);color:var(--text3);border-color:var(--border);cursor:not-allowed;}

.btn-sm{padding:4px 9px;font-size:calc(11px + var(--fs-delta));}
.emp-sel-btn{height:36px;min-width:160px;box-sizing:border-box;}

/* GAS BAR */
.gas-bar{display:flex;align-items:center;gap:7px;padding:6px 11px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);font-size:calc(11.5px + var(--fs-delta));color:var(--text2);cursor:pointer;transition:all .15s;}
.gas-bar:hover{background:var(--accent2);border-color:var(--accent3);}
.sdot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.sdot-ok{background:var(--green);} .sdot-ng{background:var(--red);} .sdot-wait{background:var(--orange);}

/* BANNER */
.banner{display:flex;align-items:flex-start;gap:9px;padding:10px 13px;border-radius:var(--r);margin-bottom:12px;font-size:calc(12.5px + var(--fs-delta));animation:fadeIn .3s;}
@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.banner-warn{background:var(--orange2);border:1px solid #fde68a;color:#92400e;}
.banner svg{width:14px;height:14px;flex-shrink:0;margin-top:1px;}
.banner-x{margin-left:auto;cursor:pointer;opacity:.5;font-size:calc(14px + var(--fs-delta));} .banner-x:hover{opacity:1;}

/* MONTH NAV */
.month-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:9px 13px;margin-bottom:12px;display:flex;align-items:center;gap:10px;box-shadow:var(--sh);}
.emp-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:9px 13px;margin-bottom:12px;display:flex;align-items:center;flex-wrap:wrap;box-shadow:var(--sh);}
.year-ctrl{display:flex;align-items:center;gap:6px;}
.year-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:3px 7px;cursor:pointer;color:var(--text2);font-size:calc(11px + var(--fs-delta));}
.year-btn:hover{background:var(--bg);}
.year-txt{font-size:calc(14px + var(--fs-delta));font-weight:600;min-width:55px;text-align:center;}
.month-nav-sep{width:1px;height:18px;background:var(--border);flex-shrink:0;margin:0 4px;}
.btn-today{background:none;border:1.5px solid var(--accent);border-radius:4px;padding:4px 9px;cursor:pointer;color:var(--accent);font-size:calc(12px + var(--fs-delta));font-family:inherit;font-weight:600;white-space:nowrap;flex-shrink:0;transition:all .15s;}
.btn-today:hover{background:var(--accent);color:#fff;}
.month-tabs{display:flex;gap:2px;flex-wrap:wrap;}
.month-tab{padding:4px 9px;border:none;background:none;border-radius:20px;font-size:calc(12px + var(--fs-delta));font-family:inherit;color:var(--text2);cursor:pointer;transition:all .15s;}
.month-tab:hover{background:var(--bg);color:var(--text);}
.month-tab.active{background:var(--accent);color:#fff;font-weight:600;}

/* EMP HEADER */
.emp-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--sh);}
.emp-info{display:flex;align-items:center;gap:11px;}
.emp-av{width:40px;height:40px;border-radius:50%;background:var(--accent2);color:var(--accent);font-size:calc(14px + var(--fs-delta));font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--accent3);}
.emp-name{font-size:calc(15px + var(--fs-delta));font-weight:700;}
.emp-sub{font-size:calc(11px + var(--fs-delta));color:var(--text3);margin-top:2px;display:flex;gap:7px;}
.emp-right{text-align:right;}
.net-label{font-size:calc(11px + var(--fs-delta));color:var(--text3);margin-bottom:3px;}
.net-amount{font-size:calc(25px + var(--fs-delta));font-weight:700;letter-spacing:-.5px;}
.net-diff{font-size:calc(11px + var(--fs-delta));color:var(--text3);margin-bottom:4px;min-height:15px;font-weight:500;}
.net-diff.up{color:#e53e3e;} .net-diff.dn{color:#1d4ed8;} .net-diff.nc{color:#94a3b8;}

/* GRID */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.card-head{padding:8px 13px;background:var(--surface2);border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between;}
.card-title{font-size:calc(11px + var(--fs-delta));font-weight:600;color:var(--text2);letter-spacing:.5px;text-transform:uppercase;}
.card-total{font-size:calc(13px + var(--fs-delta));font-weight:600;}

/* ROW */
.row{display:flex;align-items:center;justify-content:space-between;padding:5px 13px;border-bottom:1px solid var(--border2);transition:background .1s;}
.row:last-child{border-bottom:none;} .row:hover{background:var(--surface2);}
.row-label{color:var(--text);font-size:calc(12.5px + var(--fs-delta));}
.row-val{font-size:calc(12.5px + var(--fs-delta));font-weight:500;}
.row-val.hi{color:var(--accent);} .row-val.zero{color:var(--text3);}
.row-input{width:108px;text-align:right;border:1px solid var(--border);border-radius:4px;padding:3px 7px;font-size:calc(12.5px + var(--fs-delta));font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s;}
.row-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(59,91,219,.1);}
.row-emp-val{width:108px;text-align:right;font-size:calc(12.5px + var(--fs-delta));font-weight:500;color:var(--text);padding:3px 7px;}
.row-total{background:var(--surface2)!important;border-top:1px solid var(--border)!important;font-weight:600;}

/* TOOLTIP ICON */
.tip-icon{margin-left:4px;cursor:pointer;user-select:none;vertical-align:middle;flex-shrink:0;}

/* TOOLTIP PORTAL (position:fixed — カード overflow:hidden を回避) */
.tip-portal{position:fixed;z-index:9999;min-width:180px;max-width:280px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 18px rgba(0,0,0,.14);padding:10px 13px;font-size:11.5px;line-height:1.65;color:var(--text);pointer-events:none;opacity:0;transition:opacity .15s;text-align:left;font-weight:400;word-break:keep-all;word-wrap:break-word;}
.tip-portal.visible{opacity:1;}
.tip-portal::before{content:'';position:absolute;top:100%;left:var(--arrow-x,50%);transform:translateX(-50%);border:7px solid transparent;border-top-color:var(--border);}
.tip-portal::after{content:'';position:absolute;top:calc(100% - 1px);left:var(--arrow-x,50%);transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff;}

/* RATES */
.rates-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:12px;box-shadow:var(--sh);}
.rates-head{padding:8px 13px;background:var(--surface2);border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between;}
.rates-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:10px 13px;}
.rate-box{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);padding:8px 9px;text-align:center;}
.rate-lbl{font-size:calc(10px + var(--fs-delta));color:var(--text3);line-height:1.3;margin-bottom:4px;}
.rate-num{font-size:calc(14px + var(--fs-delta));font-weight:700;color:var(--accent);}

/* CALC INFO */
.calc-info{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:10px 13px;margin-bottom:12px;font-size:calc(11.5px + var(--fs-delta));color:var(--text2);}
.calc-info-title{font-weight:600;color:var(--text);font-size:calc(12px + var(--fs-delta));margin-bottom:6px;}
.calc-rows{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;}
.calc-row{display:flex;gap:7px;}
.calc-key{color:var(--text3);min-width:65px;flex-shrink:0;}

/* ── EMPLOYEE PAGE ── */
.emp-page-layout{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start;}

/* Left list panel */
.emp-list-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.emp-list-head{padding:10px 13px;background:var(--surface2);border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between;}
.emp-list-title{font-size:calc(12px + var(--fs-delta));font-weight:600;color:var(--text2);}
.emp-list-body{max-height:600px;overflow-y:auto;}
.emp-list-item{display:flex;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid var(--border2);cursor:pointer;transition:background .1s;}
.emp-list-item:last-child{border-bottom:none;}
.emp-list-item:hover{background:var(--accent2);}
.emp-list-item.active{background:var(--accent2);border-left:3px solid var(--accent);}
.emp-list-av{width:32px;height:32px;border-radius:50%;background:var(--accent2);color:var(--accent);font-size:calc(12px + var(--fs-delta));font-weight:700;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--accent3);flex-shrink:0;}
.emp-list-info{flex:1;min-width:0;}
.emp-list-name{font-size:calc(13px + var(--fs-delta));font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.emp-list-no{font-size:calc(11px + var(--fs-delta));color:var(--text3);margin-top:1px;}
.emp-list-empty{padding:30px;text-align:center;color:var(--text3);font-size:calc(13px + var(--fs-delta));}
.emp-list-toggle-bar{padding:5px 13px;border-bottom:1px solid var(--border2);background:var(--surface2);}
.resign-toggle-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:3px 10px;font-size:calc(11px + var(--fs-delta));color:var(--text3);cursor:pointer;transition:background .15s,color .15s;}
.resign-toggle-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca;}
.resign-toggle-btn.active{background:#fee2e2;color:#dc2626;border-color:#fecaca;font-weight:600;}
.resign-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;background:#fee2e2;color:#dc2626;font-size:calc(9px + var(--fs-delta));font-weight:700;margin-right:4px;flex-shrink:0;vertical-align:middle;line-height:1;}
.emp-list-item.resigned{opacity:.75;}
.emp-list-item.resigned .emp-list-av,.emp-list-av.av-resigned{background:#fef2f2;color:#ef4444;border-color:#fecaca;}

/* Right form panel */
.emp-form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);}
.emp-form-head{padding:12px 16px;background:var(--surface2);border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between;}
.emp-form-title{font-size:calc(13px + var(--fs-delta));font-weight:600;}
.emp-form-body{padding:16px;}
.form-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:14px;align-items:start;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-label-block{min-height:40px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;}
.form-label-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.form-label{font-size:calc(11px + var(--fs-delta));font-weight:600;color:var(--text2);flex-shrink:0;}
.form-req{color:var(--red);font-weight:700;margin-right:2px;}
.form-label-hint{font-size:calc(10px + var(--fs-delta));color:var(--text3);line-height:1.3;}
.form-error{
  font-size:calc(10.5px + var(--fs-delta));color:var(--red);line-height:1.3;
  flex:1;min-width:0;text-align:right;
}
.form-input{padding:7px 9px;border:1px solid var(--border);border-radius:var(--r2);font-size:calc(12.5px + var(--fs-delta));font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s;}
.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(59,91,219,.1);}
.form-input.error{border-color:var(--red);}
.form-select{padding:7px 9px;border:1px solid var(--border);border-radius:var(--r2);font-size:calc(12.5px + var(--fs-delta));font-family:inherit;color:var(--text);background:var(--surface);}
.form-hint{font-size:calc(10px + var(--fs-delta));color:var(--text3);line-height:1.3;margin-top:1px;}

/* Family section */
.fam-section{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);padding:12px;margin-bottom:14px;}
.fam-title{font-size:calc(12px + var(--fs-delta));font-weight:600;color:var(--text2);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
.fam-add-row{display:grid;grid-template-columns:1fr 160px auto auto;gap:10px;margin-bottom:10px;align-items:end;}
.fam-add-row .form-label-block{min-height:24px;}
.fam-add-row .form-error{text-align:left;}
.fam-table{width:100%;border-collapse:collapse;font-size:calc(12px + var(--fs-delta));}
.fam-table th{padding:6px 9px;background:var(--surface);border-bottom:1px solid var(--border);text-align:left;font-size:calc(10.5px + var(--fs-delta));font-weight:600;color:var(--text3);}
.fam-table td{padding:6px 9px;border-bottom:1px solid var(--border2);}
.fam-table tr:last-child td{border-bottom:none;}
.fam-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:20px;font-size:calc(11px + var(--fs-delta));font-weight:500;}
.badge-ok{background:#fef3c7;color:#92400e;}
.badge-no{background:var(--surface);color:var(--text3);border:1px solid var(--border);}
.fam-count-badge{background:var(--accent2);color:var(--accent);border:1px solid var(--accent3);border-radius:20px;padding:1px 8px;font-size:calc(11px + var(--fs-delta));font-weight:600;}

/* Form actions */
.emp-form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--border2);}

/* HISTORY */
.history-table{width:100%;border-collapse:collapse;font-size:calc(12.5px + var(--fs-delta));white-space:nowrap;}
.history-table th{padding:8px 11px;background:var(--surface2);border-bottom:1px solid var(--border);text-align:right;font-size:calc(11px + var(--fs-delta));font-weight:600;color:var(--text3);position:sticky;top:0;z-index:2;}
.history-table th:first-child{text-align:left;}
.history-table td{padding:8px 11px;border-bottom:1px solid var(--border2);text-align:right;}
.history-table td:first-child{text-align:left;}
.history-table tr:hover td{background:var(--accent3);cursor:pointer;}
.history-table th:nth-child(2),.history-table td:nth-child(2),
.history-table th:nth-child(9),.history-table td:nth-child(9),
.history-table th:nth-child(19),.history-table td:nth-child(19){border-left:2px solid var(--border);}
.history-table td:nth-child(2),.history-table td:nth-child(9),.history-table td:nth-child(18){font-weight:700;}
.hist-emp-section{margin-bottom:16px;border:1px solid var(--accent3);border-radius:var(--r);overflow:hidden;}
.hist-emp-title-bar{background:var(--accent2);border-bottom:1px solid var(--accent3);padding:9px 12px;display:flex;align-items:center;gap:8px;}
.hist-emp-label{font-weight:700;font-size:calc(13px + var(--fs-delta));color:var(--accent);}
.hist-emp-label-no{color:var(--text3);font-size:calc(11px + var(--fs-delta));}

/* RATES PAGE */
.rates-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px 13px;}

/* NOTIFICATION BELL */
.notif-btn-wrap{position:relative;display:inline-flex;}
#notif-badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;border-radius:999px;font-size:calc(10px + var(--fs-delta));font-weight:700;min-width:16px;height:16px;line-height:16px;text-align:center;padding:0 3px;pointer-events:none;}
/* NOTIFICATION PAGE */
.notif-page-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;}

/* ANNUAL PRINT PAGE */
.annual-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.annual-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);min-width:780px;}
.annual-head-row{display:grid;font-size:calc(10px + var(--fs-delta));font-weight:600;color:var(--text3);background:var(--surface2);border-bottom:1px solid var(--border);}
.annual-head-row div{padding:6px 4px;text-align:right;border-right:1px solid var(--border2);}
.annual-head-row div:first-child{text-align:left;}
.annual-data-row{display:grid;font-size:calc(11px + var(--fs-delta));border-bottom:1px solid var(--border2);}
.annual-data-row:hover{background:var(--accent2);}
.annual-data-row div{padding:5px 4px;text-align:right;border-right:1px solid var(--border2);white-space:nowrap;}
.annual-data-row div:first-child{text-align:left;color:var(--text2);font-weight:500;}
.annual-data-row.total-row{background:var(--surface2);font-weight:600;border-top:2px solid var(--border);}
.annual-no-data{padding:5px 4px;color:var(--text3);}
.annual-subtotal-pay{background:#dff2eb !important;border-top:1.5px solid #a8d8c2 !important;border-bottom:1.5px solid #a8d8c2 !important;}
.annual-subtotal-pay div{font-weight:700;color:#1a6845;}
.annual-subtotal-pay div:first-child{color:#1a5c3b;}
.annual-subtotal-deduct{background:#fef0e0 !important;border-top:1.5px solid #f5c98a !important;border-bottom:1.5px solid #f5c98a !important;}
.annual-subtotal-deduct div{font-weight:700;color:#8a4f10;}
.annual-subtotal-deduct div:first-child{color:#7a430c;}
.annual-net-row{background:#e8effd !important;border-top:2px solid #b3c6f5 !important;}
.annual-net-row div{color:#2a52b5;font-weight:700;}
.annual-net-row div:first-child{color:var(--text);}
.annual-emp-block{margin-bottom:32px;}
/* @page margin으로 모든 페이지에 여백 적용 (margin:0 + content padding은 첫/마지막만 적용되어 잘림 발생) */
@page{margin:8mm 10mm;}
@media print{
  .sidebar,.topbar,.no-print,.month-nav,.emp-nav{display:none!important;}
  /* @page margin이 여백을 담당하므로 content 패딩 제거 */
  .content{padding:0;overflow:visible !important;height:auto !important;}
  body{background:#fff;padding:0;}
  /* flex 컨테이너 해제 — min-height:100vh가 content 높이를 1페이지로 제한하여 마지막 표 잘림 발생 */
  .layout{display:block !important;min-height:0 !important;height:auto !important;}
  /* 모든 스크롤바 완전 제거 */
  html,body{overflow:hidden !important;}
  *::-webkit-scrollbar{display:none !important;width:0 !important;height:0 !important;}
  *{scrollbar-width:none !important;}
  /* overflow:hidden 해제 → page-break 동작 보장 */
  .annual-scroll-wrap{overflow:visible !important;}
  .annual-wrap{overflow:visible !important;box-shadow:none;border:1px solid #ccc;min-width:0 !important;width:100%;}
  .annual-data-row:hover{background:transparent;}
  /* 사원 블록 간 새 페이지 시작 */
  .annual-emp-block{margin-bottom:0;}
  .annual-page-break{page-break-before:always;break-before:page;}
  /* 블록 전체가 아닌 행 단위로만 잘림 방지 (블록 전체 avoid는 블록이 페이지보다 클 때 오히려 잘림) */
  .annual-data-row{page-break-inside:avoid;break-inside:avoid;}
  /* 헤더/마지막 행 라운딩: overflow:visible 전환 시 배경이 직각으로 삐져나와 잘린 것처럼 보이는 현상 수정 */
  .annual-head-row{border-top-left-radius:10px;border-top-right-radius:10px;}
  .annual-net-row{border-bottom-left-radius:10px;border-bottom-right-radius:10px;}
  /* 인쇄 중 표시된 토스트 메시지 숨김 */
  .showToast{display:none !important;}
}

/* MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center;}
.overlay.open{display:flex;}
.modal{background:var(--surface);border-radius:var(--r);box-shadow:var(--sh2);width:500px;max-width:94vw;max-height:90vh;overflow-y:auto;}
.modal-head{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface);z-index:1;}
.modal-title{font-size:calc(14px + var(--fs-delta));font-weight:600;}
.modal-x{cursor:pointer;color:var(--text3);font-size:calc(18px + var(--fs-delta));line-height:1;} .modal-x:hover{color:var(--text);}
.modal-body{padding:16px;}
.modal-foot{padding:11px 16px;border-top:1px solid var(--border);display:flex;gap:7px;justify-content:flex-end;}

/* GAS modal */
.gas-step{display:flex;gap:11px;margin-bottom:13px;}
.gas-num{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:calc(11px + var(--fs-delta));font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.gas-step-title{font-size:calc(13px + var(--fs-delta));font-weight:600;margin-bottom:3px;}
.gas-step-desc{font-size:calc(12px + var(--fs-delta));color:var(--text2);line-height:1.6;}
.gas-code{background:#1e1e2e;border-radius:var(--r2);padding:11px;margin-top:7px;font-family:monospace;font-size:calc(10.5px + var(--fs-delta));color:#cdd6f4;overflow-x:auto;white-space:pre;max-height:200px;overflow-y:auto;}
.gas-url-input{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:var(--r2);font-size:calc(12px + var(--fs-delta));font-family:monospace;margin-top:6px;background:var(--surface2);color:var(--text);}
.gas-url-input:focus{outline:none;border-color:var(--accent);}
.gas-sync-card{display:flex;flex-direction:column;align-items:center;padding:14px 10px;border-radius:var(--r2);border:2px solid transparent;cursor:pointer;transition:background .15s,border-color .15s;background:none;font-family:inherit;text-align:center;}
.gas-sync-upload{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.gas-sync-upload:hover{background:#dbeafe;border-color:#93c5fd;}
.gas-sync-download{background:#fff7ed;border-color:#fed7aa;color:#9a3412;}
.gas-sync-download:hover{background:#ffedd5;border-color:#fdba74;}
.gas-sync-icons{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:7px;}
.gas-sync-label{font-size:calc(12px + var(--fs-delta));font-weight:700;}
.gas-sync-sub{font-size:calc(10px + var(--fs-delta));margin-top:3px;opacity:.8;}

/* Rate modal rows */
.rate-row{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r2);margin-bottom:7px;}
.rate-row-r{display:flex;align-items:center;gap:5px;}
.rate-row-input{width:75px;text-align:right;border:1px solid var(--border);border-radius:4px;padding:4px 6px;font-size:calc(13px + var(--fs-delta));font-family:inherit;background:var(--surface);color:var(--text);}
.rate-row-input:focus{outline:none;border-color:var(--accent);}

/* showToast */
.showToast{position:fixed;bottom:18px;right:18px;background:var(--text);color:#fff;padding:9px 14px;border-radius:var(--r);font-size:calc(13px + var(--fs-delta));box-shadow:var(--sh2);z-index:500;opacity:0;transform:translateY(7px);transition:all .25s;pointer-events:none;max-width:280px;}
.showToast.show{opacity:1;transform:translateY(0);}
.showToast.s{background:var(--green);} .showToast.e{background:var(--red);} .showToast.w{background:var(--orange);}

/* nav-lock icon for viewer role */
.nav-lock{margin-left:auto;font-size:calc(11px + var(--fs-delta));opacity:0.65;flex-shrink:0;}
.btn-logout{color:var(--red)!important;}
.btn-logout:hover{background:var(--red2)!important;}

@media print{.sidebar,.topbar,.rates-wrap,.calc-info,.btn,.banner,.showToast,.month-nav,.emp-nav{display:none!important;}}

/* VACATION */
.vac-emp-drop{display:none;position:absolute;top:calc(100% + 5px);left:0;min-width:290px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 4px 20px rgba(0,0,0,.13);z-index:300;padding:10px;}
#vacCardsContainer{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;}
.vac-card{background:var(--surface);border:1px solid var(--accent3);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;width:280px;flex:0 0 280px;}
.vac-card-head{padding:8px 13px;background:var(--accent2);border-bottom:1px solid var(--accent3);display:flex;align-items:center;justify-content:space-between;gap:8px;}
.vac-card-body{padding:12px 14px;}
.vac-card-title{flex:1;min-width:0;}
.vac-card-name{font-size:13px;font-weight:700;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vac-card-sub{font-size:11px;color:var(--text2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vac-stats-row{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;margin-bottom:9px;}
.vac-stat{flex:1;text-align:center;padding:8px 4px;border-right:1px solid var(--border);}
.vac-stat:last-child{border-right:none;}
.vac-stat-label{font-size:10px;color:var(--text3);margin-bottom:2px;}
.vac-stat-val{font-size:16px;font-weight:700;}
.vac-stat-val.red{color:var(--red);}
.vac-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:10px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.vac-detail-stat{padding:4px 12px;border-right:0.5px solid var(--border2);}
.vac-detail-stat:first-child{padding-left:0;}
.vac-detail-stat:last-child{border-right:none;}
.vac-detail-stat-label{font-size:11px;color:var(--text3);line-height:1.3;margin-bottom:4px;}
.vac-detail-stat-val{font-size:20px;font-weight:500;}
.vac-detail-stat-sub{font-size:10px;color:var(--text3);line-height:1.3;margin-top:2px;}
.vac-expiry-warn{font-size:11px;color:var(--orange);background:var(--orange2);border:1px solid #fde68a;border-radius:var(--r2);padding:5px 9px;margin-bottom:9px;}
.vac-detail-layout{display:flex;gap:16px;align-items:flex-start;}
.vac-list-panel{flex:1;min-width:0;}
.vac-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.vac-cal-nav{background:none;border:1px solid var(--border);border-radius:var(--r2);width:28px;height:28px;cursor:pointer;font-size:15px;color:var(--text2);display:flex;align-items:center;justify-content:center;}
.vac-cal-nav:hover{background:var(--accent2);color:var(--accent);}
.vac-cal-title{font-size:13px;font-weight:600;}
.vac-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.vac-cal-dow{font-size:10px;color:var(--text3);text-align:center;padding:3px 0;font-weight:600;}
.vac-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;border-radius:50%;cursor:default;}
.vac-cal-dow.sun,.vac-cal-day.sun{color:#dc2626;}
.vac-cal-dow.sat,.vac-cal-day.sat{color:#2563eb;}
.vac-cal-day.holiday{color:#dc2626;}
.vac-cal-day.used{cursor:pointer;}
.vac-cal-day.highlight{outline:2px solid var(--accent);outline-offset:1px;}
.vac-day-used{background:#BFDBFE;color:#1E40AF;border-radius:6px;min-width:28px;padding:2px 6px;text-align:center;font-weight:700;}
.vac-day-half{background:#BBF7D0;color:#166534;border-radius:6px;min-width:28px;padding:2px 6px;text-align:center;font-weight:700;}
.vac-day-am{background:#FEF3C7;color:#92400E;border-radius:6px;min-width:28px;padding:2px 6px;text-align:center;font-weight:700;}
.vac-day-pm{background:#CCFBF1;color:#0F766E;border-radius:6px;min-width:28px;padding:2px 6px;text-align:center;font-weight:700;}
/* 미래(예정) 등록일 — 과거(파랑/초록)와 구분되는 연보라 */
.vac-day-used.future{background:#C4B5FD;color:#4C1D95;}
.vac-day-half.future{background:#DDD6FE;color:#5B21B6;}
.vac-day-am.future{background:#FDE68A;color:#78350F;}
.vac-day-pm.future{background:#99F6E4;color:#134E4A;}
.vac-day-num{display:inline-block;}
.vac-today-bar{display:none;}
.today-mark .vac-day-num{min-width:28px;padding:2px 6px;text-align:center;font-weight:700;box-shadow:0 0 0 2px #D97706;border-radius:6px;}
.today-mark .vac-day-used,.today-mark .vac-day-half,.today-mark .vac-day-used.future,.today-mark .vac-day-half.future{box-shadow:0 0 0 2px #D97706;}
.vac-list-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--r2);margin-bottom:6px;cursor:pointer;transition:background .12s;}
.vac-list-item:hover{background:var(--surface2);}
.vac-list-item.active{background:var(--accent2);border-color:var(--accent3);}
.vac-list-item.future{background:#F5F3FF;border-color:#DDD6FE;}
.vac-list-date{font-size:12px;font-weight:600;color:var(--text);min-width:76px;}
.vac-list-badge{font-size:11px;padding:2px 7px;border-radius:10px;font-weight:600;}
.vac-list-badge.full{background:var(--accent2);color:var(--accent);}
.vac-list-badge.half{background:#BBF7D0;color:#166534;}
.vac-list-badge.am{background:#FEF3C7;color:#92400E;}
.vac-list-badge.pm{background:#CCFBF1;color:#0F766E;}
.vac-list-reason{font-size:11px;color:var(--text3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vac-list-del{background:none;border:none;color:var(--text3);font-size:16px;cursor:pointer;padding:0 3px;line-height:1;flex-shrink:0;}
.vac-list-del:hover{color:var(--red);}
.vac-back-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;font-family:inherit;padding:0;margin-bottom:12px;}
.vac-back-btn:hover{opacity:.75;}
.vac-cal-month-hdr{font-size:15px;font-weight:700;color:var(--text);text-align:center;padding-bottom:10px;letter-spacing:0.3px;}
.vac-panel-hdr{font-size:12px;font-weight:700;color:var(--text2);padding:4px 0 8px;border-bottom:1px solid var(--border);margin-bottom:8px;}
.vac-badge-none{display:inline-block;font-size:10px;padding:2px 7px;border-radius:10px;background:var(--surface2);color:var(--text3);border:1px solid var(--border);font-weight:600;margin-left:6px;vertical-align:middle;}
.vac-hide-filter{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);cursor:pointer;}
.vac-card-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border2);}
.vac-card-row:last-of-type{border-bottom:none;}
.vac-card-row-label{font-size:12px;color:var(--text2);}
.vac-card-row-val{font-size:15px;font-weight:700;}
.vac-card-row-val.red{color:var(--red);}
.vac-card-foot{display:flex;justify-content:flex-end;margin-top:8px;}
.vac-cal-panel{flex:0 0 300px;min-width:260px;}
.vac-list-panel{flex:1;min-width:0;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;}
@media(max-width:700px){.vac-detail-layout{flex-direction:column;}.vac-cal-panel{flex:none;width:100%;}}

/* ── PAYMENT STATEMENT ── */
.ps-layout{display:flex;gap:16px;align-items:flex-start;}
.ps-table-wrap{flex:1;min-width:0;overflow-x:auto;}
.ps-table{width:100%;border-collapse:collapse;font-size:calc(12.5px + var(--fs-delta));min-width:580px;background:var(--surface);}
.ps-table th,.ps-table td{border:1px solid #b0b8c8;padding:0;}
.ps-table tr{height:36px;}
.ps-table th{background:#e8ecf4;font-size:calc(12px + var(--fs-delta));font-weight:600;color:var(--text);text-align:center;padding:0 10px;white-space:nowrap;}
.ps-table td{padding:0 10px;vertical-align:middle;}
.ps-kubun{text-align:center;font-size:calc(12px + var(--fs-delta));background:#e8ecf4;font-weight:600;color:var(--text);}
.ps-center{text-align:center;}
.ps-num{text-align:right;font-variant-numeric:tabular-nums;padding-right:12px!important;}
.ps-input{width:100%;text-align:right;border:none;padding:0 8px;font-size:calc(12.5px + var(--fs-delta));font-family:inherit;color:var(--text);background:transparent;outline:none;}
.ps-input:focus{background:var(--accent2);border-radius:2px;}
/* 하단 합셀 */
.ps-doujou-cell{text-align:center;vertical-align:middle;font-size:calc(12px + var(--fs-delta));font-weight:600;color:var(--text);background:#e8ecf4;border-right:1px solid #b0b8c8;}
.ps-sublabel{text-align:center;font-size:calc(12px + var(--fs-delta));font-weight:600;color:var(--text);background:#e8ecf4;border-right:1px solid #b0b8c8;}
.ps-honzei-row td{font-weight:600;}
.ps-honzei-label{font-weight:600;}
.ps-goukei-row td{font-weight:700;}
.ps-goukei-label{font-weight:700;}
.ps-bold-cell{font-weight:700;padding-right:12px!important;}
/* 납기 구분 박스 */
.ps-jiku-box{flex-shrink:0;width:168px;}

/* ══ 算定基礎届 ══ */
#page-santei .emp-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.santei-office-bar{font-size:12px;color:var(--text2);padding:8px 0 4px;border-bottom:1px solid var(--border);margin-bottom:14px;}
/* 직원 블록 */
.santei-block{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:18px;background:var(--surface);font-size:13px;}
/* 상단: 기본정보 */
.sb-head,.sb-mid{display:flex;border-bottom:1px solid var(--border);}
.sb-cell{padding:8px 12px;border-right:1px solid var(--border);}
.sb-cell:last-child{border-right:none;}
.sb-label{font-size:10px;color:var(--text3);font-weight:600;margin-bottom:3px;}
.sb-value{font-size:13px;font-weight:600;color:var(--text);}
/* 월별 테이블 */
.sb-body{display:flex;border-bottom:1px solid var(--border);}
.sb-month-table{flex:1;border-right:1px solid var(--border);}
.sb-month-header,.sb-month-row{display:flex;border-bottom:1px solid var(--border);}
.sb-month-row:last-child{border-bottom:none;}
.sbm-label{width:120px;flex-shrink:0;padding:8px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;}
.sbm-pay{font-size:13px;font-weight:700;color:var(--text);}
.sbm-ata{font-size:11px;color:var(--text3);}
.sbm-col{flex:1;padding:6px 8px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;}
.sbm-col:last-child{border-right:none;}
.sb-month-header .sbm-col{font-size:10px;font-weight:600;color:var(--text3);justify-content:center;}
.sb-month-header .sbm-label{font-size:10px;font-weight:600;color:var(--text3);}
/* 우측: 총계/평균/판정 */
.sb-right{width:200px;flex-shrink:0;display:flex;flex-direction:column;}
.sb-right .sb-cell{border-bottom:1px solid var(--border);border-right:none;flex:1;}
.sb-right .sb-cell:last-child{border-bottom:none;}
.sb-total,.sb-avg{font-size:14px;font-weight:700;color:var(--text);}
.sb-hantei-val{font-size:13px;font-weight:700;color:var(--accent);}
/* 算入対象月 강조 */
.sb-included{background:#f0fdf4;}
.sb-nodata .sbm-pay,.sb-nodata .sbm-ata{color:var(--text3);}
/* 비고 */
.sb-biko{padding:8px 12px;display:flex;align-items:center;gap:10px;}
.sb-biko .sb-label{margin:0;flex-shrink:0;}
/* 공통 입력 */
.sb-input{width:100%;border:none;background:transparent;font-family:inherit;font-size:13px;text-align:right;color:var(--text);outline:none;}
.sb-input:focus{background:var(--surface2);border-radius:4px;}
.sb-biko-input{text-align:left;}
/* 인쇄 */
@media print {
  .santei-block{page-break-inside:avoid;break-inside:avoid;}
  .sb-input{border:none !important;}
  .no-print{display:none !important;}
}
.ps-jiku-title{padding:7px 10px;background:#e8ecf4;border:1px solid #b0b8c8;font-size:calc(11.5px + var(--fs-delta));font-weight:600;color:var(--text);text-align:center;}
.ps-jiku-table{width:100%;border-collapse:collapse;font-size:calc(12.5px + var(--fs-delta));background:var(--surface);}
.ps-jiku-table td{border:1px solid #b0b8c8;padding:9px 11px;border-top:none;}
.ps-jiku-lbl{width:26px;font-weight:700;text-align:center;background:#f4f6fa;}
/* 하단 안내 */
.ps-footer-note{margin-top:10px;font-size:calc(11.5px + var(--fs-delta));color:var(--text2);line-height:1.7;}
@media print{
  /* 원천세 납부서: 좌(표)+우(납기구분박스) 가로 배치 유지 */
  .ps-layout{flex-direction:row!important;gap:6px;align-items:flex-start;}
  .ps-table-wrap{flex:1;overflow:visible;}
  /* 폰트·패딩 축소 → A4에 맞춤 */
  .ps-table{min-width:0;font-size:10pt;}
  .ps-table th{font-size:10pt;padding:4px 6px;}
  .ps-table td{font-size:10pt;padding:4px 6px;}
  .ps-input{font-size:10pt;padding:2px 4px;}
  .ps-kubun,.ps-sublabel,.ps-doujou-cell{font-size:10pt;}
  /* 컬럼 % 재정의 (colgroup 인라인 px 덮어쓰기) */
  .ps-table col:nth-child(1){width:22%!important;}
  .ps-table col:nth-child(2){width:34%!important;}
  .ps-table col:nth-child(3){width:8%!important;}
  .ps-table col:nth-child(4){width:18%!important;}
  .ps-table col:nth-child(5){width:18%!important;}
  /* 지급년월일 줄바꿈 허용 (인라인 nowrap 덮어쓰기) */
  #ps-shiharai-date{white-space:normal!important;}
  /* 우측 납기구분 박스 */
  .ps-jiku-box{width:120px;flex-shrink:0;}
  .ps-jiku-title{font-size:10pt;padding:4px 6px;}
  .ps-jiku-table td{font-size:10pt;padding:6px 8px;}
  .no-print{display:none!important;}
  .ps-footer-note{font-size:9pt;}
}
@media(max-width:900px){.ps-layout{flex-direction:column;}.ps-jiku-box{width:100%;}}
/* 労働保険 年度更新: OCR 기재란 힌트 라벨 */
.ocr-label{display:inline-block;font-size:13px;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle;font-weight:700;white-space:nowrap;letter-spacing:0;}
@media print{.ocr-label{display:inline-block!important;font-size:12px!important;color:#1e3a8a!important;background:#dbeafe!important;border-color:#93c5fd!important;}}

/* 급여명세 지급·공제 카드: 줄 높이 통일 + 합계 줄을 카드 맨 아래에 정렬 */
#payrollBody .card{display:flex;flex-direction:column;}
#payrollBody .card > div:not(.card-head){flex:1;display:flex;flex-direction:column;}
#payrollBody .row{min-height:calc(38px + var(--fs-delta) * 1.4);}
#payrollBody .row-total{margin-top:auto;}

/* 글자 크기 버튼 설명창: 기본 title 대신 버튼 위쪽에 표시 (커서에 안 가리게) */
#tip-fs-minus,#tip-fs-plus{min-width:0;white-space:nowrap;padding:6px 10px;}

/* 데이터 관리: 사용자 목록 격자, 백업 2단 (좁으면 1단) */
.um-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(440px,100%),1fr));gap:10px;}
.gas-bk-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(380px,1.4fr);gap:16px;align-items:start;}
@media (max-width:1000px){.gas-bk-grid{grid-template-columns:1fr;}}
