/* 백신물품관리 */
.inventory-view{max-width:1100px}.inventory-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.inventory-title{font-size:1.25rem;font-weight:900;color:var(--TXT)}.inventory-head p{margin:.28rem 0 0;color:var(--MUT);font-size:.78rem;line-height:1.5}.inventory-primary,.inventory-add-item{border:0;border-radius:9px;background:var(--P);color:#fff;font:700 .8rem 'Noto Sans KR',sans-serif;cursor:pointer;padding:.65rem .85rem;white-space:nowrap}.inventory-search-wrap{display:flex;align-items:center;gap:.55rem;background:#fff;border:1.5px solid var(--BRD);border-radius:12px;padding:.48rem .55rem .48rem .8rem;box-shadow:0 1px 4px rgba(15,41,77,.04)}.inventory-search-wrap:focus-within{border-color:var(--PL);box-shadow:0 0 0 3px var(--P10)}.inventory-search-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:500 .88rem 'Noto Sans KR',sans-serif;color:var(--TXT)}.inventory-add-item{background:#e8f0fa;color:var(--P)}.inventory-search-result:not(:empty){margin-top:.45rem;padding:.65rem .8rem;border:1px solid #dce7f5;border-radius:10px;background:#f7faff;font-size:.78rem;color:#44546a}.inventory-search-result button{margin-left:.55rem;border:0;border-radius:7px;background:var(--P);color:#fff;padding:.3rem .55rem;font:700 .72rem 'Noto Sans KR',sans-serif;cursor:pointer}.inventory-tabs{display:flex;gap:.4rem;margin:1.05rem 0 .75rem;overflow:auto}.inventory-tab{border:1px solid var(--BRD);background:#fff;color:var(--MUT);border-radius:99px;padding:.38rem .82rem;font:700 .76rem 'Noto Sans KR',sans-serif;cursor:pointer}.inventory-tab.on{background:var(--P);border-color:var(--P);color:#fff}.inventory-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:.85rem}.inventory-kpi{background:#fff;border:1px solid var(--BRD);border-radius:11px;padding:.75rem .85rem}.inventory-kpi span{display:block;font-size:.7rem;color:var(--MUT);margin-bottom:.25rem}.inventory-kpi strong{font-size:1rem;color:var(--TXT)}.inventory-item-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:.65rem}.inventory-item{background:#fff;border:1px solid var(--BRD);border-radius:12px;padding:.8rem;cursor:pointer;text-align:left;font-family:inherit;transition:.15s}.inventory-item:hover{border-color:var(--PL);transform:translateY(-1px)}.inventory-item h3{margin:.4rem 0 0;font-size:.87rem;color:var(--TXT)}.inventory-chip{border-radius:99px;background:var(--P10);color:var(--P);padding:.17rem .45rem;font-size:.64rem;font-weight:800;white-space:nowrap}.inventory-item-meta{display:flex;justify-content:space-between;gap:.4rem;margin-top:.7rem;font-size:.72rem;color:var(--MUT)}.inventory-item-balance{margin-top:.35rem;font-size:.82rem;font-weight:800;color:#b45309}.inventory-empty{grid-column:1/-1;text-align:center;padding:1.7rem .7rem;border:1px dashed #cbd5e1;border-radius:12px;color:var(--MUT);font-size:.82rem;background:#fafcff}.inventory-calendar-card,.inventory-ledger-card{margin-top:1rem;background:#fff;border:1px solid var(--BRD);border-radius:12px;padding:.9rem}.inventory-calendar-head,.inventory-section-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.75rem}.inventory-calendar-head strong,.inventory-section-title strong{font-size:.87rem}.inventory-calendar-head span,.inventory-section-title span{display:block;font-size:.68rem;color:var(--MUT);margin-top:.16rem}.inventory-month-nav{display:flex;align-items:center;gap:.5rem}.inventory-month-nav button{border:1px solid var(--BRD);background:#fff;border-radius:6px;width:25px;height:25px;font-size:1.05rem;line-height:1;cursor:pointer;color:var(--TXT)}.inventory-month-nav strong{font-size:.77rem;min-width:75px;text-align:center}.inventory-calendar-weekdays,.inventory-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.inventory-calendar-weekdays span{padding:.25rem;text-align:center;color:var(--MUT);font-size:.65rem;font-weight:800}.inventory-day{min-height:68px;border:1px solid #edf1f6;margin:-1px 0 0 -1px;padding:.35rem;overflow:hidden}.inventory-day.muted{background:#fafcff}.inventory-day time{display:block;color:#64748b;font-size:.66rem;font-weight:700;margin-bottom:.25rem}.inventory-event{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;padding:.13rem .22rem;border-radius:4px;margin-top:2px;font-weight:700}.inventory-event.inbound{background:#e0f2fe;color:#0369a1}.inventory-event.payment{background:#dcfce7;color:#15803d}.inventory-event.return{background:#fee2e2;color:#b91c1c}.inventory-ledger{overflow:auto}.inventory-ledger-row{display:grid;grid-template-columns:82px 72px minmax(120px,1fr) minmax(100px,1fr) 110px;gap:.55rem;padding:.6rem .2rem;border-top:1px solid #edf1f6;align-items:center;font-size:.73rem}.inventory-ledger-row:first-child{border-top:0}.inventory-ledger-row .amount{text-align:right;font-weight:800}.inventory-ledger-row .invoice{font-size:.65rem;color:var(--MUT)}.inventory-form{margin:0 0 1rem;padding:1rem;background:#f8fbff;border:1px solid #d9e6f5;border-radius:12px}.inventory-form-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.inventory-form-head strong{font-size:.9rem}.inventory-form-head button{background:none;border:0;font-size:1rem;cursor:pointer;color:var(--MUT)}.inventory-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.inventory-fields label{display:flex;flex-direction:column;gap:.28rem;color:#516174;font-size:.7rem;font-weight:700}.inventory-fields input,.inventory-fields select{box-sizing:border-box;width:100%;border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:.5rem .55rem;color:var(--TXT);font:500 .78rem 'Noto Sans KR',sans-serif}.inventory-fields .full{grid-column:1/-1}.inventory-fields small{font-weight:400;color:var(--MUT)}.inventory-form-actions{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.85rem}.inventory-form-actions button{border:0;border-radius:8px;padding:.5rem .75rem;font:700 .75rem 'Noto Sans KR',sans-serif;cursor:pointer}.inventory-form-actions .secondary{background:#e7edf5;color:#40516a}.inventory-form-actions .submit{background:var(--P);color:#fff}@media(max-width:700px){.inventory-head{align-items:stretch;flex-direction:column}.inventory-primary{width:100%}.inventory-search-wrap{flex-wrap:wrap}.inventory-search-wrap input{min-width:180px}.inventory-add-item{margin-left:auto}.inventory-summary{grid-template-columns:1fr}.inventory-day{min-height:57px;padding:.22rem}.inventory-event{font-size:.53rem}.inventory-ledger-row{grid-template-columns:72px 58px minmax(110px,1fr) 90px}.inventory-ledger-row .invoice{display:none}.inventory-fields{grid-template-columns:1fr}}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
@keyframes spin{to{transform:rotate(360deg)}}
:root{
  /* 딥 네이비 & 제이드 그린 프리미엄 테마 */
  --P:#0F294D;--PL:#1B457D;--P10:#F0F4FA;
  --G:#145942;--G10:#EAF3EF;
  --O:#A1631A;--O10:#FEF6EB;
  --R:#B92B2B;--R10:#FDF2F2;
  --Y:#D97706;--Y10:#FFFBEB;
  --S:#209955;--S10:#E6F7ED;
  --BG:#F8FAFC;--CARD:#FFF;--TXT:#1E293B;
  --MUT:#64748B;--BRD:#E2E8F0;
  --SH:0 4px 20px rgba(0,0,0,.04);
  --SH2:0 12px 32px rgba(0,0,0,.09);
  --SBW:210px; /* 기존 너비 유지 (240px 불채택) */
  /* ── 출퇴근 패널 전용 변수 ── */
  --att-primary:#0F294D;--att-primary-mid:#1B457D;--att-primary-light:#F0F4FA;
  --att-accent:#145942;--att-accent-bg:#EAF3EF;
  --att-warn:#B86704;--att-warn-bg:#FFF7EB;
  --att-danger:#B92B2B;--att-danger-bg:#FDF2F2;
  --att-muted:#64748B;--att-border:#E2E8F0;--att-surface2:#F1F5F9;
  --att-radius-sm:12px;--att-text:#1E293B;--att-text2:#334155;
}
html,body{height:100%;overflow:hidden}
body{font-family:'Noto Sans KR',sans-serif;background:var(--BG);color:var(--TXT);font-size:14px;letter-spacing:-0.2px}

/* ─── 숫자 전용 고급 폰트 (IBM Plex Mono) ─────── */
.pr-total,.pi-net,.ed-val.big,.pb-val,.kpi-val,.sev-amt,
.pct-hero-num,.sh-net,.lpc-days,.ps-net,.sb-annual-val,
.cc-num,.pi-gross,.pi-net,.pi-ot,.pb-row.total .pb-val{
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:-0.5px;
}

/* ─── 알림 블링크 애니메이션 (계약 갱신용) ─── */
@keyframes blink-red {
  0% { background: transparent; }
  50% { background: #FEE2E2; border-color: #EF4444 !important; color: #DC2626 !important; }
  100% { background: transparent; }
}
.blink-notice {
  animation: blink-red 1.5s infinite;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.4);
  font-weight: 800 !important;
}

/* ─── SCREENS ─────────────────────────────── */
.screen{position:fixed;inset:0;display:flex;flex-direction:column}
.screen.hidden{opacity:0;pointer-events:none}

/* ─── SPLASH ───────────────────────────────── */
#s-splash{background:linear-gradient(150deg,#071829 0%,#0F294D 55%,#1B457D 100%);align-items:center;justify-content:center;overflow-y:auto}
.splash-inner{display:flex;flex-direction:column;align-items:center;width:100%;max-width:420px;padding:2.5rem 1.5rem 3rem}
.logo-pill{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.45rem 1.1rem;margin-bottom:1.2rem}
.logo-pill span{font-size:.78rem;font-weight:600;color:rgba(255,255,255,.8);letter-spacing:.5px}
.logo-h{font-size:3rem;font-weight:900;color:#fff;letter-spacing:-1.5px;line-height:1}
.logo-sub{color:rgba(255,255,255,.55);font-size:.85rem;margin-top:.5rem}
.logo-wrap{text-align:center;margin-bottom:2.5rem}
.splash-q{font-size:1rem;font-weight:500;color:rgba(255,255,255,.7);margin-bottom:1.1rem;align-self:flex-start}
.prof-cards{display:flex;flex-direction:column;gap:.75rem;width:100%}
.prof-card{display:flex;align-items:center;gap:1.1rem;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.18);border-radius:16px;padding:1.2rem 1.4rem;cursor:pointer;transition:all .2s}
.prof-card:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
.pci{font-size:2rem;width:2.6rem;text-align:center}
.pct h3{color:#fff;font-size:1.05rem;font-weight:700;margin-bottom:.15rem}
.pct p{color:rgba(255,255,255,.55);font-size:.78rem}
.pc-arr{color:rgba(255,255,255,.35);font-size:1.1rem;margin-left:auto}
.splash-foot{color:rgba(255,255,255,.3);font-size:.72rem;margin-top:1.8rem;text-align:center;line-height:1.7}

/* ─── SETUP WIZARD ─────────────────────────── */
#s-setup{background:var(--BG);overflow-y:auto}
.wiz-hd{background:var(--P);color:#fff;padding:3rem 1.5rem 1.5rem;flex-shrink:0}
.wiz-hd h2{font-size:1.3rem;font-weight:700}
.wiz-hd p{font-size:.85rem;opacity:.7;margin-top:.2rem}
.step-dots{display:flex;gap:.4rem;margin-top:1rem}
.sdot{height:5px;border-radius:3px;background:rgba(255,255,255,.25);transition:all .3s}
.sdot.on{background:#fff;flex-grow:1}
.wiz-body{padding:1.5rem;flex:1}
.wiz-step{display:none}.wiz-step.on{display:block}

/* ─── FORMS ────────────────────────────────── */
.fg{margin-bottom:1.2rem}
.fg label{display:block;font-size:.75rem;font-weight:700;color:var(--MUT);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem}
.fg input,.fg select,.fg textarea{
  width:100%;padding:.8rem 1.1rem;
  border:1px solid var(--BRD);
  border-radius:12px;
  font-family:'Noto Sans KR',sans-serif;
  font-size:.95rem;color:var(--TXT);
  background:#F8FAFC;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.025);
  outline:none;transition:all .2s ease;-webkit-appearance:none
}
.fg input:focus,.fg select:focus{
  background:#fff;
  border-color:var(--PL);
  box-shadow:0 0 0 3px rgba(36,96,167,.12);
}
.fg .hint{font-size:.72rem;color:var(--MUT);margin-top:.35rem}
.frow{display:flex;gap:.8rem}
.frow .fg{flex:1}
.tg-wrap{display:flex;gap:.5rem;flex-wrap:wrap}
.tg-btn{padding:.45rem .9rem;border:1px solid var(--BRD);border-radius:10px;background:#fff;font-family:'Noto Sans KR',sans-serif;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--TXT);box-shadow:0 2px 4px rgba(0,0,0,.03)}
.tg-btn.on{background:var(--P);border-color:var(--P);color:#fff;font-weight:700;box-shadow:0 4px 10px rgba(27,63,110,.2)}

/* ─── BUTTONS ───────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;border-radius:12px;border:none;font-family:'Noto Sans KR',sans-serif;font-size:.92rem;font-weight:700;cursor:pointer;transition:all .2s ease}
.btn-p{background:var(--P);color:#fff;width:100%;box-shadow:0 4px 12px rgba(27,63,110,.2)}
.btn-p:hover{background:var(--PL);transform:translateY(-1px);box-shadow:0 6px 18px rgba(27,63,110,.28)}
.btn-sec{background:#fff;color:var(--TXT);border:1px solid var(--BRD);box-shadow:0 2px 4px rgba(0,0,0,.03)}
.btn-sec:hover{background:#F1F5F9;border-color:#CBD5E1}
.btn-sm{padding:.4rem .9rem;font-size:.8rem;border-radius:8px}
.btn-danger{background:var(--R);color:#fff}
.divider{height:1px;background:var(--BRD);margin:1.1rem 0}
.badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.65rem;font-weight:800;letter-spacing:.3px}
.badge-r{background:var(--R10);color:var(--R)}
.badge-p{background:var(--P10);color:var(--P)}
.badge-g{background:var(--G10);color:var(--G)}
.badge-o{background:var(--O10);color:var(--O)}
.badge-y{background:var(--Y10);color:var(--Y)}

/* ─── 스크롤바 커스텀 ───────────────────────── */
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:#94A3B8}

/* ─── MAIN LAYOUT ──────────────────────────── */
#s-main{flex-direction:column}

/* Mobile topbar */
.m-topbar{background:var(--P);color:#fff;padding:.65rem 1rem;display:none;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.m-topbar-title{font-size:1rem;font-weight:700;flex:1;text-align:center}
.icon-btn{background:rgba(255,255,255,.15);border:none;color:#fff;width:2.1rem;height:2.1rem;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s}
.icon-btn:hover{background:rgba(255,255,255,.25)}

.app-body{display:flex;flex:1;overflow:hidden}

/* ─── SIDEBAR ───────────────────────────────── */
.sidebar{width:var(--SBW);flex-shrink:0;background:#fff;border-right:1px solid rgba(0,0,0,.04);display:flex;flex-direction:column;overflow:hidden;transition:transform .3s cubic-bezier(.32,.72,0,1);box-shadow:2px 0 10px rgba(0,0,0,.03)}

.sb-head{background:linear-gradient(135deg,var(--P),var(--PL));padding:.6rem .85rem;flex-shrink:0}
.sb-head-lbl{font-size:.68rem;font-weight:700;color:rgba(255,255,255,.75);letter-spacing:.5px;text-transform:uppercase;margin-bottom:.25rem}
.sb-clinic-row{display:flex;align-items:center;justify-content:space-between}
.sb-clinic-type{font-size:.92rem;font-weight:700;color:#fff}
.sb-clinic-loc{font-size:.73rem;color:rgba(255,255,255,.7);margin-top:.05rem}
.sb-edit{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.65);font-size:.9rem;padding:.15rem;line-height:1}

.sb-menu-sec{padding:.55rem .7rem;border-bottom:1px solid var(--BRD);flex-shrink:0}
.sb-menu-hd{font-size:.65rem;font-weight:700;color:#fff;background:var(--O);border-radius:5px;padding:.2rem .5rem;margin-bottom:.35rem;display:inline-block;letter-spacing:.4px}
.sb-menu-item{display:flex;align-items:center;gap:.4rem;padding:.45rem .55rem;border-radius:10px;cursor:pointer;font-size:.84rem;color:var(--TXT);transition:all .18s ease;user-select:none}
.sb-menu-item:hover{background:var(--BG)}
.sb-menu-item.on{background:var(--P10);color:var(--P);font-weight:700;border-left:3px solid var(--P);padding-left:calc(.55rem - 3px);box-shadow:none}
.sb-menu-ico{font-size:.95rem;width:1.2rem;text-align:center}

.sb-staff-sec{padding:.5rem .7rem;flex:1;overflow-y:auto;min-height:0;border-bottom:1px solid var(--BRD)}
.sb-staff-hd{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:.35rem}
.sb-staff-lbl{font-size:.65rem;font-weight:700;color:#fff;background:var(--P);border-radius:5px;padding:.2rem .5rem;letter-spacing:.4px}
.sb-manage-btn{flex:1;min-width:0;background:var(--P);color:#fff;border:0;border-radius:6px;padding:.38rem .45rem;font-family:'Noto Sans KR',sans-serif;font-size:.72rem;font-weight:800;cursor:pointer;text-align:left;box-shadow:0 2px 5px rgba(15,41,77,.18)}
.sb-manage-btn:hover{background:var(--PL)}
.sb-add-btn{background:var(--P);color:#fff;border:none;padding:.2rem .55rem;border-radius:5px;font-family:'Noto Sans KR',sans-serif;font-size:.72rem;font-weight:700;cursor:pointer;transition:background .12s}
.sb-add-btn:hover{background:var(--PL)}
.sb-staff-item{display:flex;align-items:center;gap:.5rem;padding:.38rem .4rem;border-radius:7px;cursor:pointer;transition:background .12s}
.sb-staff-item:hover{background:var(--BG)}
.sb-staff-item.on{background:var(--P10)}
.sb-avatar{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0}
.sb-si-nm{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.sb-si-leave{font-size:.62rem;color:var(--MUT);white-space:nowrap}
.sb-si-warn{color:var(--R)}
.sb-empty-staff{font-size:.75rem;color:var(--MUT);text-align:center;padding:.75rem .2rem;line-height:1.6}
.sb-all-item{display:flex;align-items:center;gap:.5rem;padding:.38rem .4rem;border-radius:7px;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--MUT);transition:background .12s;margin-bottom:.2rem}
.sb-all-item:hover{background:var(--BG)}
.sb-all-item.on{background:var(--P10);color:var(--P)}

.sb-annual{padding:.5rem .8rem;border-bottom:1px solid var(--BRD);flex-shrink:0}
.sb-annual-lbl{font-size:.65rem;color:var(--MUT);font-weight:600;margin-bottom:.1rem}
.sb-annual-val{font-size:.95rem;font-weight:900;color:var(--TXT)}
.sb-annual-sub{font-size:.63rem;color:var(--MUT)}

.sb-bottom{padding:.55rem .7rem;flex-shrink:0;display:flex;flex-direction:column;gap:.35rem}
.sb-act-btn{background:#F3F4F6;border:none;border-radius:8px;padding:.45rem .65rem;font-family:'Noto Sans KR',sans-serif;font-size:.76rem;font-weight:500;cursor:pointer;text-align:left;transition:background .12s;color:var(--TXT);width:100%}
.sb-act-btn:hover{background:var(--BRD)}
.sb-act-btn.primary{background:var(--P10);color:var(--P);font-weight:700}
.sb-act-btn.primary:hover{background:#C8DEFF}
.sb-stat-note{font-size:.65rem;color:var(--MUT);padding:0 .2rem}

/* Sidebar overlay (mobile) */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:98}
.sb-overlay.on{display:block}
.sb-search-sec{padding:.65rem .7rem .45rem;background:#fff;border-bottom:1px solid var(--BRD);position:relative;z-index:3}
.sb-search-box{display:flex;align-items:center;gap:.42rem;height:2.25rem;padding:0 .62rem;border:1.5px solid #E2E8F0;border-radius:10px;background:#F8FAFC;transition:border-color .12s,box-shadow .12s,background .12s}
.sb-search-box:focus-within{background:#fff;border-color:#F59E0B;box-shadow:0 0 0 3px rgba(245,158,11,.16)}
.sb-search-ico{font-size:.9rem;line-height:1;flex-shrink:0}
#app-search-input{min-width:0;width:100%;border:none;outline:none;background:transparent;color:var(--TXT);font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:700}
#app-search-input::placeholder{color:#94A3B8;font-weight:600}
.sb-search-results{display:none;position:absolute;left:.7rem;right:.7rem;top:3.1rem;max-height:17rem;overflow-y:auto;border:1px solid #E2E8F0;border-radius:12px;background:#fff;box-shadow:0 12px 28px rgba(15,41,77,.16);padding:.35rem;z-index:30}
.sb-search-results.on{display:block}
.sb-search-item{width:100%;border:none;background:#fff;text-align:left;padding:.58rem .62rem;border-radius:9px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;display:block}
.sb-search-item:hover,.sb-search-item:focus{background:#FFF7D6;outline:none}
.sb-search-title{font-size:.78rem;font-weight:900;color:#0F294D;margin-bottom:.16rem;line-height:1.3}
.sb-search-path{font-size:.66rem;font-weight:700;color:#64748B;line-height:1.35}
.sb-search-mark{background:#FDE68A;color:#78350F;border-radius:4px;padding:0 .08rem}
.sb-search-empty{padding:.65rem .7rem;font-size:.72rem;font-weight:700;color:#94A3B8;line-height:1.55}

/* ─── VIEWS ─────────────────────────────────── */
.main-content{flex:1;overflow:hidden;display:flex;flex-direction:column;background:var(--BG)}
.view{display:none;flex:1;flex-direction:column;overflow:hidden}
.view.on{display:flex}

/* ─── 진료시간 설정 ─────────────────────────── */
.oh-row{display:grid;grid-template-columns:4.5rem 1fr;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--BRD)}
.oh-row:last-child{border-bottom:none}
.oh-lbl{font-size:.78rem;font-weight:700;color:var(--TXT)}
.oh-ctrl{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.oh-seg{display:flex;border-radius:7px;overflow:hidden;border:1.5px solid var(--BRD)}
.oh-seg button{padding:.28rem .6rem;border:none;background:#fff;font-family:'Noto Sans KR',sans-serif;font-size:.73rem;font-weight:600;cursor:pointer;color:var(--MUT);transition:all .12s;white-space:nowrap}
.oh-seg button.on{background:var(--P);color:#fff}
.oh-time{display:flex;align-items:center;gap:.3rem}
.oh-time input[type=time]{padding:.28rem .5rem;border:1.5px solid var(--BRD);border-radius:6px;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;width:7.2rem;outline:none;min-width:7.2rem}
.oh-time input[type=time]:focus{border-color:var(--PL)}
.oh-sep{font-size:.72rem;color:var(--MUT)}

/* ─── CALENDAR ──────────────────────────────── */
.cal-hd{background:#fff;border-bottom:1px solid var(--BRD);padding:.6rem .85rem;display:flex;align-items:center;gap:.45rem;flex-shrink:0;flex-wrap:wrap}
.cal-nav{background:#F3F4F6;border:none;width:1.85rem;height:1.85rem;border-radius:7px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .12s}
.cal-nav:hover{background:var(--BRD)}
.cal-title{font-size:1.05rem;font-weight:700;min-width:6.8rem}
.cal-btn{padding:.3rem .75rem;border-radius:7px;border:none;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .12s}
.cal-btn.today{background:#F3F4F6;color:var(--TXT)}
.cal-btn.today:hover{background:var(--BRD)}
.cal-btn.leave{background:var(--P);color:#fff}
.cal-btn.leave:hover{background:var(--PL)}
.cal-btn-ob{order:-1;display:inline-flex;align-items:center;gap:.38rem;padding:.42rem .72rem;border-radius:10px;border:1.5px solid #F59E0B;background:linear-gradient(180deg,#FFF7D6 0%,#FEF3C7 100%);color:#78350F;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(245,158,11,.18);transition:transform .12s,box-shadow .12s,background .12s,border-color .12s;white-space:nowrap}
.cal-btn-ob:hover{transform:translateY(-1px);border-color:#D97706;background:#FDE68A;box-shadow:0 5px 15px rgba(245,158,11,.26)}
.cal-btn-ob:active{transform:translateY(0);box-shadow:0 2px 8px rgba(245,158,11,.18)}
.cal-btn-ob-icon{font-size:.92rem;line-height:1}
.cal-btn-ob-text{letter-spacing:0}
.cal-btn-ob-badge{display:inline-flex;align-items:center;justify-content:center;padding:.18rem .36rem;border-radius:999px;background:#0F294D;color:#fff;font-size:.64rem;font-weight:900;line-height:1}
.cal-btn-ob.ob-compact{padding:.3rem .42rem;border-color:#E2E8F0;background:#F8FAFC;color:#94A3B8;box-shadow:none}
.cal-btn-ob.ob-compact:hover{background:#F1F5F9;border-color:#CBD5E1;box-shadow:none;transform:none}
.cal-btn-ob.ob-compact .cal-btn-ob-text,.cal-btn-ob.ob-compact .cal-btn-ob-badge{display:none}

.cal-legend{background:#FAFBFC;border-bottom:1px solid var(--BRD);padding:.42rem 1rem;display:flex;gap:.4rem;flex-shrink:0;flex-wrap:nowrap;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.cal-legend::-webkit-scrollbar{display:none}
.contract-4grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.7rem}
@media(max-width:768px){.contract-4grid{grid-template-columns:1fr}}
.wiz-row2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;align-items:stretch}
@media(max-width:768px){.wiz-row2{grid-template-columns:1fr}}
.ai-run-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;background:linear-gradient(90deg,#B8860B,#DAA520);color:#fff;border:none;border-radius:7px;font-family:'Noto Sans KR',sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;box-shadow:0 2px 10px rgba(184,134,11,.4);transition:transform .15s,box-shadow .15s;white-space:nowrap}
.ai-run-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px rgba(184,134,11,.55)}
.ai-run-btn:active{transform:translateY(0)}
.ai-run-btn:disabled{background:#CBD5E1;box-shadow:none;cursor:default;animation:none}
.ai-run-btn:not(:disabled){animation:ai-gold-glow 1.4s ease-in-out infinite}
.ai-done-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem 1rem;background:#F1F5F9;color:#64748B;border:none;border-radius:999px;font-family:'Noto Sans KR',sans-serif;font-size:.75rem;font-weight:600;cursor:default;white-space:nowrap}
.ai-result-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;background:#F5B544;color:#fff;border:none;border-radius:999px;font-family:'Noto Sans KR',sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap}
@keyframes ai-gold-glow{0%,100%{box-shadow:0 2px 8px rgba(245,181,68,.45)}50%{box-shadow:0 2px 20px rgba(245,181,68,.9),0 0 0 4px rgba(245,181,68,.18)}}
.ai-result-blink{animation:ai-gold-glow 1s ease-in-out infinite}
.leg-item{display:inline-flex;align-items:center;gap:.22rem;font-size:.68rem;color:#64748B;background:#F1F5F9;border:1px solid #E2E8F0;border-radius:999px;padding:.18rem .55rem;font-weight:500;white-space:nowrap}

.cal-wrap{flex:1;overflow:auto;padding:.45rem}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid #D0D7DE;border-top:1px solid #D0D7DE;margin-bottom:0}
.cal-dow>div{text-align:center;font-size:.73rem;font-weight:800;color:var(--TXT);padding:.3rem 0;letter-spacing:.3px;border-right:1px solid #D0D7DE;border-bottom:1px solid #D0D7DE}
.cal-dow>.sat{color:#1040A0}.cal-dow>.sun{color:#C0392B}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid #D0D7DE}

/* Cell */
.cc{background:#fff;border-radius:0;min-height:clamp(80px,11vh,140px);padding:.3rem .35rem;cursor:pointer;transition:background .12s;position:relative;overflow:hidden;border-right:1px solid #D0D7DE;border-bottom:1px solid #D0D7DE}
.cc:hover{background:#EEF4FF}
.cc.other{background:#F7F8FA;pointer-events:none;cursor:default}
.cc.hday{background:#FFE8E8}
.cc.labor-day{background:#FFFBE6}
.cc.labor-day .cc-num{color:#B7700A;font-weight:900}
.cc.labor-day .cc-hn{color:#B7700A}
.cc.sub{background:#FFF3E8}
.cc.today .cc-num{background:var(--P);color:#fff;border-radius:50%;width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;font-weight:900}
.cc.sat .cc-num{color:#1040A0;font-weight:900}
.cc.sun .cc-num{color:#C0392B;font-weight:900}
.cc.hday .cc-num{color:#C0392B;font-weight:900}
.cc.sub .cc-num{color:#D2691E;font-weight:900}
.cc-num{font-size:.82rem;font-weight:800;width:1.55rem;height:1.55rem;display:flex;align-items:center;justify-content:center;margin-bottom:.06rem}
/* 근무기록 인디케이터 — 우상단 모서리 삼각형 */
.cc-work-done::after,.cc-work-active::after{content:'';position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 10px 10px 0;z-index:2}
.cc-work-done::after{border-color:transparent #94A3B8 transparent transparent}
.cc-work-active::after{border-color:transparent #F97316 transparent transparent;animation:work-dot-pulse 2s ease-in-out infinite}
/* 휴일 직원 색상 상자 — 우상단 삼각형(10px) 바로 옆에 밀착 */
.cc-dayoffs{position:absolute;top:2px;right:12px;display:flex;flex-direction:row;gap:1px;flex-wrap:nowrap}
.cc-chip-off{width:9px;height:9px;border-radius:1px;flex-shrink:0;opacity:.9}
@keyframes work-dot-pulse{0%,100%{opacity:1}50%{opacity:.45}}
.cc-hn{font-size:.55rem;font-weight:700;line-height:1.15;margin-bottom:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc.hday .cc-hn{color:#C0392B}
.cc.sub .cc-hn{color:#D2691E}
.cc-evs{display:flex;flex-direction:column;gap:2px;margin-top:.06rem}
.cc-chip{font-size:.68rem;padding:.08rem .4rem;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.6;font-weight:600;width:fit-content}
.cc-more{font-size:.55rem;color:var(--MUT);padding:.02rem .2rem;font-weight:500}
.chip-leave{background:#E8F0FE;color:#1A52B7;border-left:2px solid #4285F4}
.chip-half{background:#E8F8F0;color:#1A7A5A;border-left:2px solid #34A853}
.chip-ot{background:#FFF0E0;color:#B55A00;border-left:2px solid #FF8C00}
.chip-hot{background:#FFEBEE;color:#B71C1C;border-left:2px solid #E53935}
.chip-bday{background:#FFFDE7;color:#F57F17;border-left:2px solid #FDD835}
/* 입사기념일 강조 */
.chip-anniv{background:#FFF3E0;color:#E65100;border-left:3px solid #FF6D00;font-size:.68rem!important;font-weight:800!important;padding:.1rem .4rem!important;border-radius:4px!important}
.chip-anniv-year{display:inline-block;background:#FF6D00;color:#fff;border-radius:3px;padding:0 4px;font-size:.6rem;font-weight:900;margin-left:3px;line-height:1.5}
/* 급여일 칩 */
.chip-pay{background:#E8F5E9;color:#1B5E20;border-left:3px solid #43A047;font-size:.6rem!important;font-weight:700!important;padding:.05rem .3rem!important;border-radius:3px!important}
.chip-pay-fix{background:#E3F2FD;color:#0D47A1;border-left:3px solid #1976D2;font-size:.6rem!important;font-weight:700!important;padding:.05rem .3rem!important;border-radius:3px!important}

@media(max-width:600px){
  .cc{min-height:clamp(52px,8vh,90px);padding:.18rem .2rem}
  .cc-num{font-size:.7rem}
  .cc-hn{display:none}
  .cc-chip{font-size:.55rem;padding:.03rem .2rem}
}

/* ─── PAYROLL VIEW ──────────────────────────── */
.vpad{padding:1rem 1.1rem;overflow-y:auto;flex:1}

/* ════ 직원 관리 및 수정: 전체 작업 화면 ════ */
.staff-manager-view{flex:1;overflow-y:auto;background:#F8FAFC;padding:1.4rem 1.6rem 2.5rem}
.staff-manager-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;margin:0 auto 1rem;max-width:1540px}
.staff-manager-kicker{font-size:.68rem;font-weight:900;letter-spacing:.12em;color:#2563EB;margin-bottom:.22rem}
.staff-manager-head h2{margin:0;font-size:1.55rem;letter-spacing:-.05em;color:#122B50}
.staff-manager-head p{margin:.35rem 0 0;color:#64748B;font-size:.82rem}
.staff-manager-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.staff-manager-note{max-width:1540px;margin:0 auto 1rem;padding:.7rem .9rem;border:1px solid #BFDBFE;border-radius:10px;background:#EFF6FF;color:#1D4ED8;font-size:.78rem;line-height:1.55}
.staff-manager-card{max-width:1540px;margin:0 auto 1rem;border:1px solid #C9D6E5;border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(15,35,65,.04);overflow:hidden}
.staff-manager-new-card{border-color:#BBD5FF}
.staff-manager-card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid #E8EEF6;background:linear-gradient(90deg,#FBFDFF,#F4F8FE)}
.staff-manager-card-head h3{margin:0 0 .15rem;color:#172F55;font-size:1rem}
.staff-manager-card-head span{color:#718096;font-size:.75rem}
.staff-manager-count{display:inline-flex;align-items:center;padding:.32rem .62rem;border-radius:999px;background:#E8F1FF;color:#1D4ED8;font-weight:800;white-space:nowrap}
.staff-manager-table-wrap{overflow-x:auto}
.staff-manager-table{width:100%;min-width:1413px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:.82rem;border-top:1px solid #D3DFEC}
.staff-manager-table th{padding:.62rem .7rem;background:#EAF1F8;color:#38506D;font-size:.72rem;font-weight:900;text-align:left;white-space:nowrap;border-right:1px solid #D3DFEC;border-bottom:1px solid #C9D6E5}
.staff-manager-table td{padding:0;border-right:1px solid #DCE5F0;border-bottom:1px solid #DCE5F0;vertical-align:middle;background:#fff}
.staff-manager-table tbody tr:last-child td{border-bottom:0}
.staff-manager-table tbody tr:hover td{background:#F8FBFF}
.staff-manager-table input,.staff-manager-table select{box-sizing:border-box;width:100%;height:46px;padding:.55rem .7rem;border:0;border-radius:0;background:transparent;color:#1E293B;font:inherit;outline:none}
.staff-manager-table input:focus,.staff-manager-table select:focus{background:#FFF9E8;box-shadow:inset 0 0 0 2px #F2B000}
.staff-manager-table .sm-col-name{width:130px}.staff-manager-table .sm-col-role{width:70px}.staff-manager-table .sm-col-position{width:130px}.staff-manager-table .sm-col-pay{width:160px}.staff-manager-table .sm-col-employment{width:155px}.staff-manager-table .sm-col-date{width:130px}.staff-manager-table .sm-col-clinic{width:110px}.staff-manager-table .sm-col-hours{width:70px}.staff-manager-table .sm-col-meal,.staff-manager-table .sm-col-trans{width:85px}.staff-manager-table .sm-col-baby{width:55px}.staff-manager-table .sm-col-family{width:60px}.staff-manager-table .sm-col-check{width:54px}.staff-manager-table .sm-col-action{width:65px}
.staff-manager-table .pay-col{text-align:right}.staff-manager-table .action-col{text-align:center}
.staff-manager-hours{max-width:70px}.staff-manager-money{min-width:0;text-align:right}.staff-manager-money::placeholder{color:#7B8798;opacity:1;text-align:center}.staff-manager-small{max-width:60px;text-align:center}
.staff-manager-table .check-col{text-align:center}.staff-manager-table .check-col input{width:18px;height:18px;accent-color:var(--P);cursor:pointer}
.staff-manager-table .freeze-col{position:sticky;z-index:2;background:#fff;box-shadow:1px 0 0 #C9D6E5}
.staff-manager-table thead .freeze-col{z-index:4;background:#16365F;color:#fff}
.staff-manager-table .freeze-name{left:0;min-width:130px;width:130px;text-align:center;background:#EAF2FF;border-left:4px solid #16365F}
.staff-manager-table tbody .freeze-name input{font-weight:900;color:#102E55;text-align:center}
.staff-manager-table tbody tr:hover .freeze-name{background:#E3EEFF}
.staff-manager-pay{width:100%;height:46px;border:0;border-radius:0;background:#F2F7FF;color:#174EA6;font:inherit;font-weight:900;cursor:pointer;padding:.55rem .7rem;white-space:nowrap}
.staff-manager-pay span{font-size:1rem;margin-left:.2rem}
.staff-manager-pay-input{text-align:right;font-weight:800}
.staff-manager-empty{padding:1.5rem!important;text-align:center;color:#738196!important}
.staff-manager-new-card tbody tr td{background:#FBFDFF}
.staff-manager-new-card tbody tr:hover td{background:#F5F9FF}
.staff-manager-new-card .staff-manager-empty{display:none}
.staff-manager-new-card + .staff-manager-bottom-actions{max-width:1540px;margin:1rem auto 0}
.staff-manager-bottom-actions{display:flex;gap:.6rem;max-width:1540px;margin:1rem auto 0}.staff-manager-bottom-actions .btn{flex:1;height:48px;font-size:.95rem}

@media(max-width:720px){
  .staff-manager-view{padding:1rem .75rem 5.5rem}
  .staff-manager-head{align-items:flex-start;flex-direction:column}
  .staff-manager-head h2{font-size:1.3rem}
  .staff-manager-actions{width:100%}.staff-manager-actions .btn{flex:1;padding:.65rem .4rem;font-size:.76rem}
  .staff-manager-card-head{align-items:flex-start;flex-direction:column}
}
.pr-mhd{background:#fff;border-radius:14px;padding:.9rem 1rem;box-shadow:var(--SH);display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.m-nav{display:flex;align-items:center;gap:.7rem}
.m-nav-btn{background:var(--BG);border:none;width:1.9rem;height:1.9rem;border-radius:7px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}
.m-nav-btn:hover{background:var(--BRD)}
.m-label{font-size:1rem;font-weight:700}
.pr-sum{background:#fff;border-radius:18px;padding:1.4rem 1.4rem;margin-bottom:.9rem;color:var(--TXT);box-shadow:0 8px 24px rgba(0,0,0,.04);border:1px solid var(--BRD)}
.pr-sum h4{font-size:.75rem;color:var(--MUT);margin-bottom:.35rem;font-weight:700}
.pr-total{font-size:1.85rem;font-weight:900;line-height:1;color:var(--P);letter-spacing:-.5px}
.pr-sub{font-size:.75rem;color:var(--MUT);margin-top:.4rem;font-weight:600}
#hire-mode-tabs{display:flex;gap:6px;margin-bottom:.42rem}
#hire-mode-tabs .hire-mode{flex:1;padding:.42rem .3rem;border:1.5px solid var(--BRD);border-radius:8px;background:#fff;color:var(--MUT);font-family:inherit;font-size:.74rem;font-weight:700;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
#hire-mode-tabs .hire-mode.on{border-color:var(--P);background:var(--P10);color:var(--P)}
.pr-role{margin-top:.85rem;padding-top:.7rem;border-top:1px solid var(--BRD);font-size:.7rem;line-height:1.75;color:var(--MUT);font-weight:500}
.pr-role b{color:var(--TXT);font-weight:800}
.pr-item{background:#fff;border-radius:18px;padding:.9rem 1.05rem;box-shadow:var(--SH);margin-bottom:.7rem;cursor:pointer;border:1px solid rgba(226,232,240,.7);transition:all .22s ease}
.pr-item:hover{box-shadow:var(--SH2);transform:translateY(-2px);border-color:rgba(27,63,110,.12)}
.pi-row{display:flex;align-items:center;justify-content:space-between}
.pi-l{display:flex;align-items:center;gap:.7rem}
.pi-av{width:2.2rem;height:2.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;background:var(--P10);color:var(--P);flex-shrink:0}
.pi-nm{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.pi-pos{font-size:.7rem;color:var(--MUT);margin-top:.08rem}
.pi-r{text-align:right}
.pi-net{font-weight:700;color:var(--P);font-size:.9rem}
.pi-gross{font-size:.7rem;color:var(--MUT);margin-top:.05rem}
.pi-ot{font-size:.68rem;color:var(--O);margin-top:.02rem}
.pi-lv{font-size:.68rem;color:var(--G);margin-top:.02rem}

/* ─── SETTINGS VIEW ─────────────────────────── */
.set-sec{background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.04);overflow:hidden;margin-bottom:1.2rem;border:1px solid rgba(0,0,0,.06)}
.set-sec-title{font-size:.85rem;font-weight:800;color:var(--TXT);text-transform:none;letter-spacing:-.2px;padding:1.1rem 1.2rem .8rem;border-bottom:1px solid var(--BRD)}
.set-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid var(--BRD);cursor:pointer;transition:background .12s}
.set-item:last-child{border-bottom:none}
.set-item:hover{background:#F9FAFB}
.si-lbl{font-weight:500;font-size:.88rem}
.si-val{font-size:.78rem;color:var(--MUT)}
.si-danger .si-lbl{color:var(--R)}

/* ── 설정 의료기관 요약 카드 ── */
.set-clinic-summary{padding:1rem 1.2rem .6rem;display:flex;flex-direction:column;gap:12px}
.set-clinic-nm{font-size:1.1rem;font-weight:900;color:var(--TXT);line-height:1.2}
.set-clinic-sub{font-size:.78rem;color:var(--MUT);margin-top:2px}
.set-clinic-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.set-clinic-cell{background:#FAFAFA;border-radius:10px;padding:.7rem .85rem;border:1px solid rgba(0,0,0,.03)}
.set-clinic-cell-lbl{font-size:.68rem;color:var(--MUT);font-weight:600;margin-bottom:4px}
.set-clinic-cell-val{font-size:.82rem;font-weight:800;color:var(--TXT)}
.set-clinic-edit{display:block;width:100%;margin:0;padding:.75rem 1rem;border:none;border-top:1px solid var(--BRD);background:transparent;color:var(--P);font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;text-align:center;transition:background .12s}
.set-clinic-edit:hover{background:#F0F7FF}

/* ── 설정 급여·보험 2열 그리드 ── */
.set-law-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:.85rem 1rem 1rem}
.set-law-item{background:var(--BG);border-radius:9px;padding:.6rem .75rem}
.set-law-lbl{font-size:.67rem;color:var(--MUT);font-weight:600;margin-bottom:3px}
.set-law-val{font-size:.82rem;font-weight:700;color:var(--TXT)}

/* ── 설정 위험 영역 ── */
.set-sec.danger-zone{border:1.5px solid #FECACA;background:#FFFAFA}
.set-sec.danger-zone .set-sec-title{color:#DC2626;background:#FFF5F5;border-bottom-color:#FECACA}
.set-sec.danger-zone .set-item:hover{background:#FFF0F0}

/* Notice box */
.nb{border-radius:12px;padding:.8rem 1rem;margin-bottom:.8rem;display:flex;gap:.6rem}
.nb.danger{background:var(--R10);border-left:4px solid var(--R)}
.nb.info{background:var(--P10);border-left:4px solid var(--P)}
.nb-ico{font-size:1.05rem;flex-shrink:0}
.nb-h{font-size:.8rem;font-weight:700;color:var(--R);margin-bottom:.12rem}
.nb.info .nb-h{color:var(--P)}
.nb-t{font-size:.75rem;line-height:1.6;color:#7B241C}
.nb.info .nb-t{color:#1A3A6E}

/* ─── MODALS ────────────────────────────────── */
.moverlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:200;align-items:flex-end;backdrop-filter:blur(5px)}
.moverlay.on{display:flex}
/* 중앙 다이얼로그 (프리미엄 잠금 등) */
.moverlay-center{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:3100;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.moverlay-center.on{display:flex}
.mdialog{background:#fff;border-radius:20px;width:min(92%,360px);padding:2rem 1.8rem 1.6rem;box-shadow:0 24px 64px rgba(0,0,0,.22);animation:popIn .22s cubic-bezier(.34,1.56,.64,1);text-align:center}
@keyframes popIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.msheet{background:#fff;border-radius:24px 24px 0 0;width:100%;max-height:94vh;overflow-y:auto;padding:1.4rem 1.6rem 2.2rem;box-shadow:0 -10px 40px rgba(0,0,0,.15);animation:slideUp .28s cubic-bezier(.32,.72,0,1)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.mhandle{width:44px;height:5px;background:#CBD5E1;border-radius:3px;margin:0 auto 1.2rem}
.mtitle{font-size:1.2rem;font-weight:800;color:var(--P);margin-bottom:1rem}
.msub{font-size:.8rem;color:var(--MUT);margin-top:-.6rem;margin-bottom:.9rem}

/* Day modal events */
.ev-list{display:flex;flex-direction:column;gap:.38rem;margin-bottom:.75rem;max-height:35vh;overflow-y:auto}
.ev-item{display:flex;align-items:center;justify-content:space-between;background:#F9FAFB;border-radius:9px;padding:.5rem .65rem}
.ev-l{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.ev-av{width:1.55rem;height:1.55rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;color:#fff;flex-shrink:0}
.ev-nm{font-size:.8rem;font-weight:600}
.ev-tbadge{font-size:.68rem;padding:.1rem .38rem;border-radius:5px;font-weight:700}
.ev-h{font-size:.72rem;color:var(--MUT)}
.ev-del{background:none;border:none;cursor:pointer;color:var(--MUT);font-size:.9rem;padding:.1rem .2rem;border-radius:4px;transition:color .12s;line-height:1}
.ev-del:hover{color:var(--R)}

/* Add event inline */
.add-ev{background:var(--P10);border-radius:10px;padding:.8rem;border:1.5px solid #C8DEFF}
.add-ev .fg{margin-bottom:.6rem}
.add-ev .fg:last-of-type{margin-bottom:0}

/* Payslip */
.payslip{background:#fff;border:1px solid var(--BRD);border-radius:12px;padding:1.2rem;font-size:.8rem}
.ps-hd{text-align:center;padding-bottom:.7rem;margin-bottom:.8rem;border-bottom:2px solid #1A252F}
.ps-hd h3{font-size:1.05rem;font-weight:900;letter-spacing:4px}
.ps-hd p{font-size:.7rem;color:var(--MUT);margin-top:.15rem}
.ps-info{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:.74rem}
.ps-info td{padding:.27rem .38rem;border:1px solid #E0E0E0}
.ps-info td:nth-child(odd){background:#F5F5F5;font-weight:600;width:23%}
.ps-tbl{width:100%;border-collapse:collapse}
.ps-tbl th,.ps-tbl td{padding:.28rem .38rem;border:1px solid #E0E0E0;font-size:.73rem}
.ps-tbl th{background:#F5F5F5;font-weight:600;text-align:center}
.ps-tbl td:nth-child(2),.ps-tbl td:nth-child(4){text-align:right;font-feature-settings:'tnum'}
.ps-tbl tr.psum td{background:#F0F4F8;font-weight:700}
.ps-net{display:flex;justify-content:space-between;align-items:center;background:var(--P);color:#fff;border-radius:9px;padding:.75rem .9rem;margin-top:.65rem;font-weight:700;font-size:.98rem}
.ps-foot{text-align:center;font-size:.63rem;color:var(--MUT);margin-top:.6rem;line-height:1.7}

/* ─── EMPLOYEE DETAIL MODAL ──────────────────── */
.emp-profile{display:flex;align-items:center;gap:.9rem;background:linear-gradient(135deg,var(--P),var(--PL));border-radius:18px;padding:1.1rem 1.2rem;margin-bottom:1rem;color:#fff;box-shadow:0 6px 18px rgba(15,41,77,.2)}
.emp-av-lg{width:3.2rem;height:3.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:900;color:#fff;flex-shrink:0;border:2.5px solid rgba(255,255,255,.4)}
.emp-p-nm{font-size:1.1rem;font-weight:800}
.emp-p-sub{font-size:.75rem;opacity:.75;margin-top:.12rem}
.emp-p-badge{display:inline-block;background:rgba(255,255,255,.2);border-radius:5px;padding:.1rem .45rem;font-size:.68rem;font-weight:700;margin-top:.25rem}

.ed-sec{margin-bottom:.9rem}
.ed-sec-title{font-size:.68rem;font-weight:800;color:var(--MUT);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.45rem;display:flex;align-items:center;gap:.3rem}
.ed-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.ed-card{background:#F9FAFB;border-radius:14px;padding:.65rem .8rem;border:1px solid var(--BRD);transition:all .2s ease}
.ed-card.full{grid-column:1/-1}
.ed-card.accent-p{background:var(--P10);border-color:#C8DEFF}
.ed-card.accent-g{background:var(--G10);border-color:#B0E8C8}
.ed-card.accent-o{background:var(--O10);border-color:#FDDCB5}
.ed-card.accent-r{background:var(--R10);border-color:#FFCDD2}
.ed-lbl{font-size:.63rem;color:var(--MUT);font-weight:600;margin-bottom:.15rem}
.ed-val{font-size:.92rem;font-weight:800;color:var(--TXT)}
.ed-val.big{font-size:1.1rem;color:var(--P)}
.ed-val.green{color:var(--G)}
.ed-val.orange{color:var(--O)}
.ed-val.red{color:var(--R)}
.ed-sub{font-size:.63rem;color:var(--MUT);margin-top:.1rem}

.leave-bar-wrap{background:#E5E7EB;border-radius:6px;height:7px;margin-top:.5rem;overflow:hidden}
.leave-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--G),#52C77B);transition:width .4s}
.leave-bar.warn{background:linear-gradient(90deg,var(--O),#F5A623)}
.leave-bar.danger{background:linear-gradient(90deg,var(--R),#E57373)}

.pay-breakdown{background:#F9FAFB;border-radius:10px;border:1px solid var(--BRD);overflow:hidden;margin-top:.4rem}
.pb-row{display:flex;justify-content:space-between;align-items:center;padding:.42rem .75rem;border-bottom:1px solid var(--BRD);font-size:.78rem}
.pb-row:last-child{border-bottom:none}
.pb-row.total{background:var(--P);color:#fff;font-weight:800;font-size:.85rem}
.pb-row.ded-total{background:#F5F5F5;font-weight:700}
.pb-lbl{color:inherit}
.pb-val{font-weight:700;font-feature-settings:'tnum';color:inherit}
.pb-val.minus{color:var(--R)}
.pb-val.plus{color:var(--G)}

.cal-ev-list{display:flex;flex-direction:column;gap:.3rem}
.cal-ev-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem .65rem;border-radius:8px;font-size:.76rem}
.cer-date{color:var(--MUT);font-size:.7rem;min-width:3.5rem}
.cer-type{font-weight:700;flex:1;padding:0 .4rem}
.cer-hrs{font-size:.7rem;color:var(--MUT)}
.avatar{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;flex-shrink:0}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--MUT)}
.empty-ico{font-size:2.5rem;margin-bottom:.65rem}
.empty h3{font-size:.95rem;font-weight:600;color:var(--TXT);margin-bottom:.3rem}
.empty p{font-size:.78rem}

/* ─── 모바일 하단 탭바 ─── */
.m-bottomnav{
  position:fixed;bottom:0;left:0;right:0;
  height:calc(56px + env(safe-area-inset-bottom,0px));
  padding-bottom:env(safe-area-inset-bottom,0px);
  background:#fff;border-top:1px solid var(--BRD);
  display:none;z-index:97;
  box-shadow:0 -2px 12px rgba(0,0,0,.07);
}
.m-bn-tab{
  flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;padding:6px 0;
  font-size:.58rem;font-weight:700;color:var(--MUT);
  cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;
}
.m-bn-ico{font-size:1.22rem;line-height:1}
.m-bn-tab.on{color:var(--P)}

/* ─── Mobile responsive ─── */
@media(max-width:768px){
  /* 탑바 제거 — 달력 헤더에 통합 */
  .m-topbar{ display:none !important; }
  /* 달력 헤더: 상단 safe area 패딩 */
  .cal-hd{ padding-top:calc(.6rem + env(safe-area-inset-top,0px)); gap:.35rem; }
  .cal-btn-ob{padding:.4rem .58rem;font-size:.74rem}
  .cal-btn-ob-badge{display:none}
  /* 모바일에서 브랜드 아이콘 표시 */
  #cal-brand-icon{ display:block !important; }
  /* 사이드바 — 하단 탭바 위까지만 */
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;z-index:99;
    transform:translateX(-100%);
    padding-bottom:calc(56px + env(safe-area-inset-bottom,0px));
  }
  .sidebar.open{transform:translateX(0)}
  /* 하단 탭바 표시 */
  .m-bottomnav{display:flex}
  /* 뷰 콘텐츠 스크롤 */
  .view.on{overflow-y:auto;-webkit-overflow-scrolling:touch}
  /* 콘텐츠 하단 여백 — 하단 탭바에 마지막 내용이 가리지 않도록 (달력은 자체 하단바가 처리하므로 제외) */
  .view.on:not(#view-calendar){padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  /* 콘텐츠 하단 여백 — 탭바에 가리지 않도록 */
  .vpad{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px)) !important}
  /* 달력 하단 버튼바 — 탭바에 가리지 않도록 */
  .att-toggle-bar{padding-bottom:calc(.55rem + 56px + env(safe-area-inset-bottom,0px))}
  /* 모바일에서 핀번호·자동잠금 설정 숨기기 */
  #lock-settings-sec{display:none !important}
  /* 급여현황 상단 헤더 줄바꿈 */
  .pr-mhd{flex-wrap:wrap;gap:8px}
  /* 테이블 가로 스크롤 */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  /* 직원 상세 탭 가로 스크롤 */
  .ed-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}
  .ed-tab{white-space:nowrap;flex-shrink:0}
  /* 모달 하단 슬라이드업 */
  .modal-box,.modal-card{
    width:100% !important;max-width:100% !important;
    border-radius:20px 20px 0 0 !important;
    position:fixed !important;bottom:0;left:0;right:0;top:auto !important;
    max-height:92vh;overflow-y:auto;
    transform:none !important;
  }
  .modal,.modal-overlay{align-items:flex-end !important}
}
@media(min-width:769px){
  .sidebar{transform:none !important}
  .m-bottomnav{display:none !important}
}

/* ─── EMPLOYEE DETAIL VIEW ─────────────────── */
#view-empdetail{background:#F8F9FA}
.ed-topbar{background:#fff;border-bottom:1px solid var(--BRD);padding:.5rem 1rem;display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.ed-back{background:none;border:1.5px solid var(--P);color:var(--P);font-family:'Noto Sans KR',sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.25rem;padding:.28rem .75rem;border-radius:7px;transition:all .15s}
.ed-back:hover{background:var(--P10)}
.ed-hd{background:#fff;border-bottom:1px solid var(--BRD);padding:.7rem 1.1rem;display:flex;align-items:center;gap:.8rem;flex-shrink:0;flex-wrap:wrap}
.ed-hd-av{width:2.6rem;height:2.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:900;color:#fff;flex-shrink:0}
.ed-hd-info{flex:1;min-width:0}
.ed-hd-nm{font-size:1.05rem;font-weight:800}
.ed-hd-sub{font-size:.74rem;color:var(--MUT);margin-top:.05rem}
.ed-hd-acts{display:flex;gap:.45rem;margin-left:auto;flex-shrink:0}
.ed-act{border:1.5px solid var(--BRD);border-radius:8px;padding:.32rem .7rem;font-family:'Noto Sans KR',sans-serif;font-size:.76rem;font-weight:600;cursor:pointer;color:var(--TXT);background:#fff;transition:all .15s;white-space:nowrap}
.ed-act:hover{background:var(--BG);border-color:var(--P);color:var(--P)}
.ed-act.primary{background:var(--P);color:#fff;border-color:var(--P)}
.ed-act.primary:hover{background:var(--PL)}
/* Tabs */
.ed-tabs{background:#fff;border-bottom:2px solid var(--BRD);padding:.55rem .85rem 0;display:flex;gap:.3rem;flex-shrink:0;overflow-x:auto}
.ed-tab{padding:.4rem .78rem;border:1.5px solid var(--BRD);border-bottom:none;background:#F9FAFB;font-family:'Noto Sans KR',sans-serif;font-size:.77rem;font-weight:600;cursor:pointer;color:var(--MUT);border-radius:8px 8px 0 0;margin-bottom:-2px;white-space:nowrap;transition:all .15s}
.ed-tab:hover{background:#EEF4FF;color:var(--P);border-color:#C8DEFF}
.ed-tab.on{color:var(--P);background:#fff;border-color:var(--P);border-bottom-color:#fff;font-weight:800;box-shadow:0 -2px 6px rgba(27,63,110,.1)}
.ed-content{flex:1;overflow-y:auto;padding:1rem 1.1rem}
.ed-section{margin-bottom:1rem}
.ed-s-title{font-size:.72rem;font-weight:700;color:var(--MUT);letter-spacing:.4px;text-transform:uppercase;margin-bottom:.6rem}
/* Tax */
.tax-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:.85rem}
.kpi-card{background:#fff;border-radius:12px;padding:.65rem .75rem;box-shadow:var(--SH)}
.kpi-lbl{font-size:.64rem;color:var(--MUT);font-weight:600;margin-bottom:.18rem}
.kpi-val{font-size:1rem;font-weight:900}
.kpi-val.blue{color:var(--P)}.kpi-val.red{color:var(--R)}.kpi-val.dark{color:#222}
.pay-bar-wrap{background:#fff;border-radius:12px;padding:.75rem .85rem;box-shadow:var(--SH);margin-bottom:.85rem}
.pay-bar-track{height:13px;border-radius:7px;overflow:hidden;display:flex;margin:.45rem 0}
.pay-bar-seg{height:100%;transition:width .4s}
.pay-bar-legend{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.64rem;color:var(--MUT);margin-top:.3rem}
.pbl-item{display:flex;align-items:center;gap:.22rem}
.pbl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ded-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--SH);margin-bottom:.85rem}
.ded-hd{display:flex;justify-content:space-between;padding:.4rem .85rem;background:#F5F7FA;font-size:.68rem;font-weight:700;color:var(--MUT);border-bottom:1px solid var(--BRD)}
.ded-row{display:flex;justify-content:space-between;align-items:center;padding:.48rem .85rem;border-bottom:1px solid var(--BRD);font-size:.82rem}
.ded-row:last-child{border-bottom:none}
.ded-row.total{font-weight:800;background:#FFF5F5;font-size:.88rem}
.ded-lbl{color:var(--TXT)}.ded-pct{font-size:.66rem;color:var(--MUT);margin-left:.25rem}
.ded-amt{font-weight:700;color:var(--TXT)}
.ded-row.total .ded-amt{color:var(--R)}
/* Overtime */
.ot-info{background:#fff;border-radius:12px;padding:.7rem .85rem;box-shadow:var(--SH);margin-bottom:.75rem}
.ot-inf-row{display:flex;justify-content:space-between;font-size:.79rem;padding:.18rem 0}
.ot-inf-val{font-weight:700;color:var(--P)}
.ot-nb{background:#F3F4F6;border:1px solid var(--BRD);width:1.85rem;height:1.85rem;border-radius:6px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--TXT);transition:background .12s}
.ot-nb:hover{background:var(--BRD)}
.ot-nv{width:2.4rem;text-align:center;font-weight:700;font-size:.88rem}
.ot-num{display:flex;align-items:center;gap:.35rem}
.ot-result{background:#fff;border-radius:12px;padding:.7rem .85rem;box-shadow:var(--SH);margin-top:.65rem}
.ot-res-row{display:flex;justify-content:space-between;font-size:.8rem;padding:.2rem 0;border-bottom:1px solid var(--BRD)}
.ot-res-row:last-child{border-bottom:none;font-weight:800;font-size:.88rem;padding-top:.35rem;margin-top:.1rem}
.ot-res-val{font-weight:700}
.hday-list{display:flex;flex-direction:column;gap:.28rem}
.hday-item{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;padding:.28rem .5rem;background:#fff;border-radius:7px;box-shadow:var(--SH)}
.hday-date{color:var(--MUT);min-width:4.2rem}.hday-nm{flex:1;font-weight:500}
/* Leave */
.leave-period-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--SH);margin-bottom:.65rem;border:1.5px solid var(--BRD)}
.lpc-hd{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;border-bottom:1px solid var(--BRD)}
.lpc-left{display:flex;align-items:center;gap:.45rem}
.lpc-badge{padding:.16rem .48rem;border-radius:5px;font-size:.68rem;font-weight:700}
.lpc-badge.done{background:#E8F5E9;color:#2E7D32}
.lpc-badge.active{background:#E3F2FD;color:#1565C0}
.lpc-badge.future{background:#F5F5F5;color:#9E9E9E}
.lpc-badge.settled{background:#E8F5E9;color:#2E7D32}
.lpc-title{font-size:.88rem;font-weight:700}
.lpc-dates{font-size:.68rem;color:var(--MUT);margin-top:.05rem}
.lpc-right{text-align:right}
.lpc-days{font-size:.9rem;font-weight:800}
.lpc-days.green{color:var(--G)}.lpc-days.orange{color:var(--O)}.lpc-days.muted{color:var(--MUT)}
.lpc-body{padding:.7rem .85rem;background:#FAFBFC;border-top:1px solid var(--BRD)}
.lpc-bar-row{display:flex;justify-content:space-between;font-size:.7rem;color:var(--MUT);margin-bottom:.2rem}
.lpc-bar-wrap{background:#E5E7EB;border-radius:6px;height:7px;overflow:hidden}
.lpc-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--G),#52C77B)}
.lpc-bar.warn{background:linear-gradient(90deg,var(--O),#F5A623)}
.lpc-bar.danger{background:linear-gradient(90deg,var(--R),#E57373)}
.leave-bar-wrap{background:#E5E7EB;border-radius:6px;height:7px;margin:.15rem 0 .1rem;overflow:hidden}
.leave-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--G),#52C77B)}
.leave-bar.warn{background:linear-gradient(90deg,var(--O),#F5A623)}
.leave-bar.danger{background:linear-gradient(90deg,var(--R),#E57373)}
/* Salary history */
.sal-hist-item{background:#fff;border-radius:10px;padding:.65rem .85rem;box-shadow:var(--SH);margin-bottom:.45rem;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--BRD)}
.sh-left{flex:1}.sh-date{font-size:.68rem;color:var(--MUT);font-weight:600}.sh-note{font-size:.75rem;color:var(--TXT);margin-top:.1rem}
.sh-right{text-align:right}.sh-net{font-size:.9rem;font-weight:800;color:var(--P)}.sh-gross{font-size:.67rem;color:var(--MUT);margin-top:.05rem}
.sh-diff{font-size:.68rem;font-weight:700}
/* Severance */
.sev-hero{background:linear-gradient(135deg,var(--P),var(--PL));border-radius:14px;padding:1rem 1.1rem;color:#fff;margin-bottom:.85rem}
.sev-lbl{font-size:.72rem;opacity:.8;margin-bottom:.12rem}
.sev-amt{font-size:1.5rem;font-weight:900}
.sev-sub{font-size:.7rem;opacity:.7;margin-top:.2rem}
.sev-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--SH);margin-bottom:.65rem}
.sev-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.48rem .85rem;border-bottom:1px solid var(--BRD);font-size:.8rem}
.sev-row:last-child{border-bottom:none}
.sev-row-lbl{color:var(--MUT);font-size:.7rem;margin-top:.1rem}
.sev-row-val{font-weight:700;text-align:right}
.sev-row-val.blue{color:var(--P)}
/* Non-tax sim */
.ntsim-result{background:#fff;border-radius:12px;padding:.75rem .85rem;box-shadow:var(--SH);margin-top:.65rem}
.ntsim-row{display:flex;justify-content:space-between;font-size:.8rem;padding:.22rem 0;border-bottom:1px solid var(--BRD)}
.ntsim-row:last-child{border-bottom:none;font-weight:800;font-size:.88rem;margin-top:.2rem;padding-top:.35rem}
/* Payslip — 화면 표시용 */
.payslip{background:#fff;border:1px solid var(--BRD);border-radius:12px;padding:1.2rem 1.3rem;font-size:.78rem}
.ps-hd{text-align:center;padding-bottom:.7rem;margin-bottom:.8rem;border-bottom:2px solid #0F294D}
.ps-hd h3{font-size:1.05rem;font-weight:900;letter-spacing:5px;color:#0F294D}
.ps-hd p{font-size:.68rem;color:var(--MUT);margin-top:.2rem;letter-spacing:.5px}
/* 인적사항 — 보더 없는 수평 칩 스타일 */
.ps-meta{display:flex;flex-wrap:wrap;gap:0;border:1px solid #E5EAF0;border-radius:8px;overflow:hidden;margin-bottom:.75rem;font-size:.71rem}
.ps-meta-item{flex:1;min-width:80px;padding:.42rem .6rem;border-right:1px solid #E5EAF0}
.ps-meta-item:last-child{border-right:none}
.ps-meta-lbl{font-size:.6rem;font-weight:700;color:#94A3B8;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.1rem}
.ps-meta-val{font-weight:700;color:#1E293B;font-size:.73rem}
/* 급여 테이블 */
.ps-tbl{width:100%;border-collapse:collapse}
.ps-tbl thead tr{border-bottom:1.5px solid #0F294D}
.ps-tbl th{padding:.35rem .5rem;font-size:.66rem;font-weight:700;color:#64748B;letter-spacing:.4px;text-align:left;background:none}
.ps-tbl th:nth-child(2),.ps-tbl th:nth-child(4){text-align:right}
.ps-tbl td{padding:.32rem .5rem;font-size:.72rem;color:#374151;border-bottom:1px solid #F1F5F9}
.ps-tbl td:nth-child(2),.ps-tbl td:nth-child(4){text-align:right;font-feature-settings:'tnum';color:#0F294D;font-weight:600}
.ps-tbl td:nth-child(3){border-left:1px solid #E5EAF0;color:#64748B}
.ps-tbl tr.psum td{font-weight:800;color:#0F294D;background:#F8FAFC;border-top:1.5px solid #CBD5E1;border-bottom:none;font-size:.73rem}
.ps-tbl tr.psum td:nth-child(2),.ps-tbl tr.psum td:nth-child(4){color:#0F294D}
/* 세무사 비교(5열) 명세서 — 앱 계산 | 세무사 우측 정렬 + 세무사열 좌측 구분선 */
.ps-tbl-cmp{table-layout:auto}
.ps-tbl-cmp th:nth-child(4),.ps-tbl-cmp th:nth-child(5),.ps-tbl-cmp td:nth-child(4),.ps-tbl-cmp td:nth-child(5){text-align:right;font-feature-settings:'tnum'}
.ps-tbl-cmp th:nth-child(5),.ps-tbl-cmp td:nth-child(5){border-left:1px solid #E5EAF0}
/* 실지급액 */
.ps-net{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem;padding:.8rem 1rem;background:linear-gradient(135deg,var(--brand-mid),color-mix(in srgb,var(--brand-muted) 65%,var(--brand-mid)));color:#fff;border-radius:10px;font-weight:800}
.ps-net span:first-child{font-size:.78rem;letter-spacing:2px;opacity:.9}
.ps-net span:last-child{font-size:1.05rem;font-family:'IBM Plex Mono',monospace;letter-spacing:.5px}
/* 하단 주석 */
.ps-foot{font-size:.6rem;color:#94A3B8;margin-top:.6rem;text-align:center;line-height:1.9;border-top:1px solid #F1F5F9;padding-top:.5rem}

/* ── 급여명세서 PDF 전용 렌더링 컨테이너 ── */
/* 560px 고정폭: html2canvas 캡처 후 A4(210mm) 중앙에 배치 — 절대 변경 금지 */
.slip-pdf-wrap{width:560px;background:#fff;padding:1.6rem 2rem;box-sizing:border-box}
.slip-pdf-wrap .payslip{
  border:none;border-radius:0;padding:0;font-size:.86rem;background:#fff
}
.slip-pdf-wrap .ps-hd{
  text-align:center;padding-bottom:1rem;margin-bottom:1.3rem;
  border-bottom:2.5px solid #0F294D
}
.slip-pdf-wrap .ps-hd h3{
  font-size:1.55rem;letter-spacing:10px;font-weight:900;color:#0F294D
}
.slip-pdf-wrap .ps-hd p{font-size:.78rem;margin-top:.35rem;letter-spacing:.6px;color:#475569}
.slip-pdf-wrap .ps-meta{font-size:.8rem;margin-bottom:1.1rem}
.slip-pdf-wrap .ps-meta-lbl{font-size:.66rem}
.slip-pdf-wrap .ps-meta-val{font-size:.82rem;font-weight:700}
.slip-pdf-wrap .ps-meta-item{padding:.5rem .75rem}
.slip-pdf-wrap .ps-tbl th{padding:.48rem .7rem;font-size:.74rem}
.slip-pdf-wrap .ps-tbl td{padding:.44rem .7rem;font-size:.8rem}
.slip-pdf-wrap .ps-tbl tr.psum td{font-size:.82rem}
.slip-pdf-wrap .ps-net{
  padding:1.1rem 1.4rem;border-radius:12px;margin-top:1rem;
  /* html2canvas 1.4.x는 color-mix()가 계산한 color(...) 표기를 해석하지 못한다. */
  background:linear-gradient(135deg,#0F294D,#1B457D)
}
.slip-pdf-wrap .ps-net span:first-child{font-size:.88rem;letter-spacing:3px}
.slip-pdf-wrap .ps-net span:last-child{font-size:1.22rem;letter-spacing:.8px}
.slip-pdf-wrap .ps-foot{font-size:.68rem;margin-top:.85rem;padding-top:.65rem;border-top:1px solid #F1F5F9;line-height:2.1;color:#64748B}
/* Pay breakdown (used in detail modals) */
.pay-breakdown{background:#fff;border-radius:12px;border:1px solid var(--BRD);overflow:hidden;margin-top:.4rem}
.pb-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;border-bottom:1px solid var(--BRD);font-size:.79rem}
.pb-row:last-child{border-bottom:none}
.pb-row.total{background:var(--P);color:#fff;font-weight:800;font-size:.85rem}
.pb-row.ded-total{background:#F5F5F5;font-weight:700}
.pb-lbl{color:inherit}
.pb-val{font-weight:700;font-feature-settings:'tnum'}
.pb-val.minus{color:var(--R)}.pb-val.plus{color:var(--G)}
/* Misc */

/* ─── TIER / PREMIUM ──────────────────────────── */
.tier-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .55rem;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.3px}
.tier-basic{background:#F3F4F6;color:var(--MUT)}
.tier-premium{background:linear-gradient(90deg,#B8860B,#DAA520);color:#fff;box-shadow:0 1px 4px rgba(184,134,11,.35)}
.lock-overlay{position:relative}
.lock-overlay::after{content:'🔒';position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.85rem;opacity:.5;pointer-events:none}

/* ─── 프리미엄 전용 기능 잠금 스타일 (세련된 프리미엄) ─── */
/* 부드럽고 얇은 골드 테두리로 변경 */
.prem-gate-el{
  position:relative;
  cursor:pointer;
  transition:all .2s ease;
  border-radius:8px;
}
.prem-gate-el:hover{
  box-shadow:0 4px 12px rgba(218,165,32,.15);
  transform:translateY(-1px);
}

/* 버튼 형태 잠금 — 은은한 골드 테두리와 밝은 텍스트 */
button.prem-gate-el:not(.prem-unlocked){
  background:#fff !important;
  color:#B8860B !important;
  border:1.5px solid #DAA520 !important;
  box-shadow:0 2px 6px rgba(184,134,11,.1) !important;
  opacity:1 !important;
}
button.prem-gate-el:not(.prem-unlocked):hover{
  background:#FFFBEB !important;
  border-color:#B8860B !important;
}

/* 잠금 뱃지 (우측 중앙) */
.prem-gate-el::after{
  content:'PRO';
  position:absolute;
  top:50%;right:.5rem;
  transform:translateY(-50%);
  font-size:.55rem;font-weight:900;letter-spacing:.5px;
  background:linear-gradient(135deg,#D4AF37,#AA7C11);
  color:#fff;border-radius:4px;
  padding:.12rem .35rem;
  pointer-events:none;
  box-shadow:0 1px 3px rgba(184,134,11,.3);
}

/* 탭 버튼: 뱃지 우상단 */
.ed-tab.prem-gate-el{
  overflow:visible;
  border:1.5px solid rgba(218,165,32,.5);
  background:#fff;
  color:var(--MUT);
}
.ed-tab.prem-gate-el:not(.prem-unlocked){
  background:#fff !important;
  color:#B8860B !important;
  border:1.5px solid #DAA520 !important;
  box-shadow:0 1px 4px rgba(184,134,11,.08) !important;
  font-weight:700 !important;
}
.ed-tab.prem-gate-el::after{
  top:-.3rem;right:-.3rem;
  transform:none;
  font-size:.5rem;padding:.08rem .32rem;
  background:linear-gradient(135deg,#D4AF37,#AA7C11);
}
/* set-item 잠금: 골드 배경 틴트 */
.set-item.prem-gate-el{
  background:linear-gradient(90deg,rgba(218,165,32,.06),rgba(218,165,32,.12)) !important;
}
.set-item.prem-gate-el .si-lbl{ color:#7B4A1A; font-weight:700; }
.set-item.prem-gate-el .si-val::before{ content:'👑'; font-size:.8rem; }
.set-item.prem-gate-el .si-val{ color:#B8860B !important; font-size:.7rem; opacity:1 !important; }

/* ── 토스트 알림 (통합급여달인) ── */
#att-toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(80px);background:#1A2340;color:#fff;padding:10px 22px;border-radius:24px;font-size:14px;font-weight:500;z-index:9999;transition:.28s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;box-shadow:0 6px 24px rgba(27,58,107,.25);pointer-events:none}
#att-toast.show{transform:translateX(-50%) translateY(0)}

/* ══════════════════════════════════════════════
   출퇴근 패널 (통합급여달인 전용)
   ══════════════════════════════════════════════ */
/* ── 달력 뷰: 스크롤 컨테이너 ── */
#view-calendar{overflow-y:auto !important;overflow-x:hidden}
#view-calendar .cal-wrap{flex:0 0 auto;overflow:visible}

/* 토글 버튼 */
.att-toggle-bar{padding:.55rem .85rem;background:#fff;border-top:2px solid var(--att-primary-light);display:flex;align-items:center;justify-content:center;gap:.6rem}
.att-toggle-btn{display:flex;align-items:center;gap:.45rem;background:var(--P10);border:1.5px solid var(--PL);color:var(--P);border-radius:8px;padding:.38rem .85rem;font-family:'Noto Sans KR',sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s}
.att-toggle-btn:hover{background:#C8DEFF}
.att-toggle-btn.active{background:var(--P);color:#fff;border-color:var(--P)}

/* 법정근무기록 오늘 미기록 시 pulse */
@keyframes attPulse{
  0%   { box-shadow:0 0 0 0 rgba(234,88,12,.55), 0 2px 10px rgba(234,88,12,.2); }
  70%  { box-shadow:0 0 0 11px rgba(234,88,12,0), 0 2px 10px rgba(234,88,12,.2); }
  100% { box-shadow:0 0 0 0 rgba(234,88,12,0),   0 2px 10px rgba(234,88,12,.2); }
}
.att-toggle-btn.needs-record{
  animation: attPulse 1.6s ease-out infinite;
  background: #FFF7ED !important;
  border-color: #EA580C !important;
  color: #C2410C !important;
}
.att-toggle-info{font-size:.73rem;color:var(--MUT)}

/* 출퇴근 패널 컨테이너 */
#att-panel{background:var(--att-surface2);border-top:1px solid var(--att-border);padding:.9rem 1rem 1.15rem}
#att-panel.hidden{display:none}
#att-panel-inner{width:100%;max-width:none}

/* 패널 헤더 */
.att-panel-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--att-border)}
.att-panel-title{font-size:.9rem;font-weight:800;color:var(--att-primary)}
.att-panel-date{font-size:.8rem;color:var(--att-muted)}

/* ── 법정근무기록 일일 선택: 넓은 한 줄 작업대 ──
   직원 수가 늘면 카드 폭은 유지하고 이 영역만 수평 스크롤한다. */
.att-day-control{width:100%;box-sizing:border-box;background:#F8FAFC;border:1.5px solid #E2E8F0;border-radius:14px;padding:15px;margin-bottom:15px}
.att-day-control-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.att-status-scroll{display:flex;align-items:stretch;gap:10px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 10px;scrollbar-color:#CBD5E1 transparent;scrollbar-width:thin}
.att-status-scroll::-webkit-scrollbar{height:8px}
.att-status-scroll::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:99px}
.att-status-chip{flex:1 0 142px;min-height:46px;box-sizing:border-box;padding:9px 13px;border-radius:10px;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .2s;user-select:none;white-space:nowrap}
.att-status-chip .att-status-name{overflow:hidden;text-overflow:ellipsis;max-width:112px}
.att-status-chip .att-status-label{font-size:11px;font-weight:800;opacity:.86}
@media (max-width:640px){
  #att-panel{padding:.75rem .65rem 1rem}
  .att-day-control{padding:12px}
  .att-day-control-toolbar{align-items:flex-start;flex-direction:column}
  .att-status-chip{flex-basis:126px}
}

/* 근무기록 출력 모달 */
#m-att-report{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3000;align-items:center;justify-content:center}
#m-att-report.open{display:flex}
.att-report-box{background:#fff;border-radius:16px;padding:1.4rem 1.5rem;width:min(480px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.18)}
.att-report-title{font-size:1rem;font-weight:800;color:var(--att-primary);margin-bottom:1rem}
.att-report-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem;flex-wrap:wrap}
.att-report-lbl{font-size:.8rem;font-weight:700;color:var(--att-text2);min-width:52px}
.att-report-emp-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:.3rem}
.att-report-emp-chip{padding:4px 12px;border:1.5px solid var(--att-border);border-radius:20px;font-size:.76rem;font-weight:600;cursor:pointer;color:var(--att-text2);background:#fff;user-select:none;transition:.12s}
.att-report-emp-chip.sel{background:var(--att-primary);color:#fff;border-color:var(--att-primary)}
/* 위촉(프리랜서) 전문직 칩 — 보라색 구분 */
.att-report-emp-chip.freelancer{border-color:#C4B5FD;color:#7C3AED;background:#FAF5FF}
.att-report-emp-chip.freelancer.sel{background:#7C3AED;color:#fff;border-color:#7C3AED}
/* 근무현황 패널 위촉의사 행 — 보라색 좌측 라인 */
.att-day-summary-row.fl-row{border-left:3px solid #A78BFA;padding-left:8px;background:#FAFAFF;border-radius:0 8px 8px 0;margin-left:-8px}
.att-report-btns{display:flex;gap:.6rem;margin-top:1rem}
.att-report-btn{flex:1;padding:.55rem;border:none;border-radius:10px;font-size:.82rem;font-weight:700;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:.15s}
.att-report-btn-print{background:#94A3B8;color:#fff}
.att-report-btn-print:hover{background:#64748B}
.att-report-btn-confirm{background:#1E293B;color:#fff}
.att-report-btn-confirm:hover{background:#0F172A}
.att-report-btn-cancel{background:#f1f5f9;color:var(--att-text2)}

/* 세무사용 임금대장 모달 */
#m-tax-report,#m-tax-import{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3000;align-items:center;justify-content:center}
#m-tax-report.open,#m-tax-import.open{display:flex}
#m-tax-detail{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3100;align-items:center;justify-content:center}
#m-tax-detail.open{display:flex}
.tax-report-box{background:#fff;border-radius:16px;padding:1.4rem 1.5rem;width:min(900px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.18)}
.tax-tbl-scroll{overflow-x:auto;margin:.5rem 0;border-radius:8px;border:1px solid #e2e8f0}
.tax-tbl{border-collapse:collapse;font-size:.72rem;width:100%}
.tax-tbl th{background:#1e293b;color:#fff;padding:6px 10px;text-align:right;white-space:nowrap;font-weight:700;font-size:.68rem;position:sticky;top:0}
.tax-tbl th:first-child,.tax-tbl th:nth-child(2){text-align:left}
.tax-tbl td{padding:6px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap;color:#334155;font-size:.75rem}
.tax-tbl td:first-child{text-align:left;font-weight:700}
.tax-tbl td:nth-child(2){text-align:left;color:#64748b}
.tax-tbl tr:hover td{background:#f8fafc}
.tax-tbl-total td{background:#f0f9ff!important;font-weight:800;color:#0369a1;border-top:2px solid #bae6fd}
.tax-view-tabs{display:flex;gap:.35rem;margin:.6rem 0 .3rem;flex-wrap:wrap}
.tax-view-tab{padding:.35rem .9rem;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:'Noto Sans KR',sans-serif}
.tax-view-tab:hover{background:#f1f5f9;border-color:#94a3b8}
.tax-view-tab.tv-simple{background:#f0fdf4;border-color:#16a34a;color:#15803d;font-weight:800}
.tax-view-tab.tv-summary{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8;font-weight:800}
.tax-view-tab.tv-detail{background:#fff7ed;border-color:#f97316;color:#c2410c;font-weight:800}
.tax-simple-note{background:#f0fdf4;border:1.5px solid #86efac;border-radius:10px;padding:.6rem .9rem;margin:.4rem 0;font-size:.75rem;color:#166534;line-height:1.7}
.tax-report-btn-gold{background:linear-gradient(90deg,#B8860B,#DAA520);color:#fff}
.tax-report-btn-gold:hover{filter:brightness(1.1)}
.tax-report-btn-send{background:#1E293B;color:#fff}
.tax-report-btn-send:hover{background:#0F172A}
.tax-basis-bar{font-size:.68rem;color:#94a3b8;margin-top:.8rem;padding:.55rem .8rem;background:#f8fafc;border-radius:8px;line-height:1.8}

/* IBM Plex Mono 사용 요소 */
.att-mono{font-family:'IBM Plex Mono',monospace}

/* ── 법정 검증 툴팁 ── */
.lv-tip{position:relative;display:inline-flex;align-items:center;gap:.2rem;cursor:help;border-bottom:2px dashed currentColor;padding-bottom:.05rem}
.lv-tip-icon{font-size:.65rem;opacity:.7}
.lv-tip-box{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:#1E293B;color:#F8FAFC;border-radius:10px;padding:.7rem .85rem;
  width:280px;font-size:.72rem;line-height:1.7;z-index:9999;pointer-events:none;
  box-shadow:0 8px 24px rgba(0,0,0,.35);font-weight:400;font-family:'Noto Sans KR',sans-serif;
  white-space:pre-line}
.lv-tip-box::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#1E293B}
.lv-tip:hover .lv-tip-box{display:block}
.lv-tip-title{font-weight:800;color:#93C5FD;font-size:.73rem;margin-bottom:.3rem;display:block}
.lv-tip-sep{color:#475569;margin:.3rem 0;display:block;border-top:1px solid #334155}
.lv-tip-result{color:#86EFAC;font-weight:700}

/* 필수 서류 카드 */
.doc-card{background:#fff;border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--SH);border:1.5px solid var(--BRD);cursor:pointer;transition:all .18s;display:flex;flex-direction:column;gap:.45rem}
.doc-card:hover{border-color:var(--P);box-shadow:0 4px 20px rgba(66,133,244,.13);transform:translateY(-1px)}
.doc-card-head{display:flex;align-items:center;gap:.55rem}
.doc-card-icon{font-size:1.4rem;line-height:1}
.doc-card-name{font-size:.9rem;font-weight:800;color:#1e293b;flex:1}
.doc-card-badge{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.doc-card-desc{font-size:.77rem;color:var(--MUT);line-height:1.6}
.doc-card-action{font-size:.72rem;font-weight:700;color:var(--P);margin-top:.2rem}
.doc-card-locked{opacity:.72;background:#F8F8FF;border-color:#C4B5FD}
.doc-card-locked:hover{border-color:#7C3AED;box-shadow:0 4px 20px rgba(124,58,237,.13)}
.doc-card-locked .doc-card-action{color:#7C3AED}
.doc-card-prem{border:2px solid #DAA520;box-shadow:0 2px 12px rgba(218,165,32,.18)}
.doc-card-prem:hover{border-color:#B8860B;box-shadow:0 4px 20px rgba(218,165,32,.28);transform:translateY(-1px)}
.doc-crown{font-size:.75rem;vertical-align:middle}

/* 세션 블록 */
.att-session-block{border:1.5px solid var(--att-border);border-radius:var(--att-radius-sm);overflow:hidden;margin-bottom:10px}
.att-session-block.state-active{border-color:var(--att-accent)}
.att-session-block.state-done{border-color:#C0C8D8}
.att-session-head{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;background:var(--att-surface2);border-bottom:1px solid var(--att-border)}
.att-session-head.am-head{background:#F0FAF6}
.att-session-head.pm-head{background:#FFF8F0}
.att-session-head.state-active.am-head{background:var(--att-accent-bg)}
.att-session-head.state-active.pm-head{background:var(--att-warn-bg)}
.att-s-badge{font-size:10px;font-weight:700;padding:2px 9px;border-radius:10px}
.att-badge-am{background:var(--att-accent-bg);color:var(--att-accent)}
.att-badge-pm{background:var(--att-warn-bg);color:var(--att-warn)}
.att-session-pill{font-size:10px;font-weight:700;padding:2px 9px;border-radius:12px}
.att-pill-waiting{background:#F0F0F0;color:var(--att-muted)}
.att-pill-started{background:var(--att-accent-bg);color:var(--att-accent)}
.att-pill-done{background:var(--att-primary-light);color:var(--att-primary)}
.att-session-body{padding:10px 13px;background:#fff}

/* 시간+버튼 행 */
.att-tar{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.att-tar:last-of-type{margin-bottom:0}
.att-tar-lbl{font-size:11px;font-weight:700;color:var(--att-muted);width:28px;flex-shrink:0}
.att-tar-inp{flex:1;padding:7px 10px;border:1.5px solid var(--att-border);border-radius:8px;font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:700;color:var(--att-text);background:var(--att-surface2);outline:none;transition:.18s;-webkit-appearance:none;min-width:0}
.att-tar-inp:focus{border-color:var(--att-primary);background:#fff}
.att-tar-inp.recorded{border-color:var(--att-accent);background:var(--att-accent-bg);color:var(--att-accent)}
.att-action-btn{padding:7px 12px;border:none;border-radius:8px;font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:.18s;white-space:nowrap;flex-shrink:0}
.att-btn-start{background:var(--att-accent);color:#fff}
.att-btn-start:hover{background:#0A6048;transform:translateY(-1px)}
.att-btn-end{background:var(--att-primary);color:#fff}
.att-btn-end:hover{background:var(--att-primary-mid);transform:translateY(-1px)}
.att-btn-recorded{background:#E8E8E8;color:var(--att-muted);cursor:default}

/* 승인 영역 */
.att-approval-area{margin-top:9px;padding-top:8px;border-top:1px dashed var(--att-border)}
.att-apv-label{font-size:10px;font-weight:700;color:var(--att-muted);letter-spacing:.4px;text-transform:uppercase;margin-bottom:6px}
.att-apv-chips{display:flex;flex-wrap:wrap;gap:5px}
.att-apv-chip{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:12px}
.att-apv-ok{background:var(--att-accent-bg);color:var(--att-accent)}
.att-apv-wait{background:#F0F0F0;color:var(--att-muted);border:1px dashed var(--att-border)}
.att-apv-req{background:#FFF0D9;color:var(--att-warn);border:1.5px solid var(--att-warn)}
.att-apv-time{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:500}

/* 직원 선택 칩 */
.att-staff-grid{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.att-staff-chip{display:flex;align-items:center;gap:5px;padding:6px 13px;border:1.5px solid var(--att-border);border-radius:20px;cursor:pointer;transition:.18s;font-size:13px;font-weight:500;background:#fff;color:var(--att-text2);user-select:none}
.att-staff-chip:hover{border-color:var(--att-primary);color:var(--att-primary)}
.att-staff-chip.active{background:var(--att-primary);border-color:var(--att-primary);color:#fff}
.att-staff-chip .chk{font-size:11px;opacity:.6}
.att-staff-chip.active .chk{opacity:1}
/* 역할별 칩 색상 — 위촉(진보라) / 원장(보라) / 부원장(파랑) / 직원(청록) */
.att-staff-chip.role-freelancer{border-color:#A78BFA;color:#7C3AED;background:#FAF5FF;font-weight:700}
.att-staff-chip.role-freelancer:hover{border-color:#7C3AED;color:#6D28D9}
.att-staff-chip.role-freelancer.active{background:#7C3AED;border-color:#7C3AED;color:#fff}
.att-staff-chip.role-director{border-color:#C4B5FD;color:#6D28D9;background:#F5F3FF}
.att-staff-chip.role-director:hover{border-color:#7C3AED;color:#6D28D9}
.att-staff-chip.role-director.active{background:#7C3AED;border-color:#7C3AED;color:#fff}
.att-staff-chip.role-doctor{border-color:#93C5FD;color:#1D4ED8;background:#EFF6FF}
.att-staff-chip.role-doctor:hover{border-color:#1D4ED8;color:#1D4ED8}
.att-staff-chip.role-doctor.active{background:#1D4ED8;border-color:#1D4ED8;color:#fff}
.att-staff-chip.role-staff{border-color:#6EE7B7;color:#0F766E;background:#F0FDFA}
.att-staff-chip.role-staff:hover{border-color:#0F766E;color:#0F766E}
.att-staff-chip.role-staff.active{background:#0F766E;border-color:#0F766E;color:#fff}
.att-all-btn{background:none;border:1.5px dashed var(--att-border);color:var(--att-muted);padding:6px 13px;border-radius:20px;cursor:pointer;font-size:12px;font-family:'Noto Sans KR',sans-serif;transition:.18s}
.att-all-btn:hover{border-color:var(--att-primary);color:var(--att-primary)}
/* 의사/직원 역할 탭 */
.att-role-tabs{display:flex;gap:5px;margin-bottom:8px}
.att-role-tab{padding:4px 14px;border:1.5px solid var(--att-border);border-radius:14px;font-size:12px;font-weight:700;cursor:pointer;background:#fff;color:var(--att-muted);font-family:'Noto Sans KR',sans-serif;transition:.15s}
.att-role-tab.active{background:var(--att-primary);border-color:var(--att-primary);color:#fff}

/* 근태 사유 섹션 */
.att-absence-section{margin-top:10px;padding:10px 12px;background:#FFFBF5;border:1.5px solid var(--att-warn);border-radius:var(--att-radius-sm)}
.att-absence-title{font-size:10px;font-weight:700;color:var(--att-warn);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.att-absence-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.att-absence-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1.5px solid var(--att-border);border-radius:20px;cursor:pointer;font-size:12px;font-weight:600;background:#fff;color:var(--att-text2);user-select:none;transition:.15s}
.att-absence-chip:hover{border-color:var(--att-warn);color:var(--att-warn)}
.att-absence-chip.sel{background:var(--att-warn);border-color:var(--att-warn);color:#fff}
.att-absence-already{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.att-absence-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;display:flex;align-items:center;gap:4px}
.att-ab-late{background:#FFF0D9;color:var(--att-warn)}
.att-ab-holiday{background:#E3F0FC;color:#1565C0}
.att-ab-leave{background:var(--att-accent-bg);color:var(--att-accent)}
.att-ab-alert{background:#FEE2E2;color:#B91C1C;font-weight:700}
.att-absence-action-row{display:flex;gap:6px;flex-wrap:wrap}
.att-absence-btn{flex:1;min-width:80px;padding:8px 6px;border:none;border-radius:8px;font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:.18s;opacity:.4;pointer-events:none}
.att-absence-btn.active{opacity:1;pointer-events:auto}
.att-ab-btn-late{background:var(--att-warn);color:#fff}
.att-ab-btn-late:hover{background:#A8650A}
.att-ab-btn-holiday{background:#1565C0;color:#fff}
.att-ab-btn-holiday:hover{background:#0D47A1}
.att-ab-btn-leave{background:var(--att-accent);color:#fff}
.att-ab-btn-leave:hover{background:#085D50}

/* 직원 요청 행 */
.att-dir-req-row{margin-top:10px;padding:10px 12px;background:var(--att-warn-bg);border:1.5px solid var(--att-warn);border-radius:var(--att-radius-sm)}
.att-dir-req-title{font-size:11px;font-weight:700;color:var(--att-warn);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.att-dir-req-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px dashed #F0D9B0}
.att-dir-req-item:last-child{border-bottom:none;padding-bottom:0}
.att-dir-req-name{font-size:13px;font-weight:700;color:var(--att-text2);min-width:60px}
.att-dir-req-edit{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;color:var(--att-text);background:#fff;border:1.5px solid var(--att-border);border-radius:6px;padding:4px 8px;-webkit-appearance:none;outline:none;transition:.18s;width:100px}
.att-dir-req-edit:focus{border-color:var(--att-warn)}
.att-dir-approve-btn{padding:5px 12px;border:none;border-radius:6px;background:var(--att-accent);color:#fff;font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:.18s;white-space:nowrap}
.att-dir-approve-btn:hover{background:#0A6048}
.att-dir-reject-btn{padding:5px 10px;border:1.5px solid var(--att-border);border-radius:6px;background:transparent;color:var(--att-muted);font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.18s;white-space:nowrap}
.att-dir-reject-btn:hover{color:var(--att-danger);border-color:var(--att-danger)}

/* 추가근무 섹션 */
.att-ot-section{margin-top:10px;padding:10px 12px;background:#F0F4FF;border:1.5px solid var(--att-primary-mid);border-radius:var(--att-radius-sm)}
.att-ot-title{font-size:10px;font-weight:700;color:var(--att-primary);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.att-ot-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1.5px solid var(--att-border);border-radius:20px;cursor:pointer;font-size:12px;font-weight:600;background:#fff;color:var(--att-text2);user-select:none;transition:.15s}
.att-ot-chip:hover{border-color:var(--att-primary-mid);color:var(--att-primary-mid)}
.att-ot-btn{flex:1;padding:8px;border:none;border-radius:8px;font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:.18s}
.att-ot-btn-start{background:var(--att-primary-mid);color:#fff}
.att-ot-btn-start:hover{background:var(--att-primary)}
.att-ot-btn-end{background:var(--att-danger);color:#fff}
.att-ot-btn-end:hover{background:#A52020}
.att-ot-row{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background:#fff;border-radius:7px;margin-bottom:4px;border:1px solid var(--att-border)}
.att-ot-row-name{font-size:12px;font-weight:700;color:var(--att-text2)}
.att-ot-time{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;color:var(--att-primary-mid)}
.att-ot-cancel{background:none;border:none;cursor:pointer;color:var(--att-muted);font-size:13px;padding:0 3px}
.att-ot-cancel:hover{color:var(--att-danger)}

/* 수정/삭제 버튼 */
.att-edit-btn{width:100%;padding:8px;border:1.5px solid var(--att-border);border-radius:var(--att-radius-sm);background:transparent;color:var(--att-primary-mid);font-family:'Noto Sans KR',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.18s;margin-top:8px}
.att-edit-btn:hover{background:var(--att-primary-light);border-color:var(--att-primary-light)}

/* 날 근무 현황 요약 */
.att-day-summary-row{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:var(--att-surface2);border-radius:8px;border:1px solid var(--att-border);margin-bottom:5px;flex-wrap:wrap;gap:4px}

/* 진료마침 모달 */
#att-modal-end{position:fixed;inset:0;background:rgba(10,15,30,.45);z-index:600;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:.2s}
#att-modal-end.open{opacity:1;pointer-events:all}
.att-modal-box{background:#fff;border-radius:16px;width:100%;max-width:460px;box-shadow:0 8px 32px rgba(0,0,0,.18);overflow:hidden}
.att-modal-header{padding:15px 18px;border-bottom:1px solid var(--att-border);display:flex;align-items:center;justify-content:space-between}
.att-modal-title{font-size:15px;font-weight:700;color:var(--att-primary)}
.att-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--att-muted);line-height:1;padding:4px}
.att-modal-body{padding:16px 18px}
.att-modal-footer{padding:12px 18px;border-top:1px solid var(--att-border)}

/* 사이드바에서 쓰는 구분선 */
.att-divider-line{height:1px;background:var(--att-border);margin:10px 0}

/* 사이드바 메뉴 항목 잠금 (무료) */
.sb-menu-item.prem-gate-el:not(.prem-unlocked){
  background:rgba(245,181,68,.07) !important;
  color:#7B4A1A !important;
  border-radius:8px;
  margin:.1rem .15rem;
}
.sb-menu-item.prem-gate-el::after{
  font-size:.52rem;top:50%;right:.5rem;
  transform:translateY(-50%);
  background:linear-gradient(135deg,#D4AF37,#AA7C11);
  color:#fff;
  box-shadow:0 1px 3px rgba(184,134,11,.3);
}

/* 프리미엄/체험 활성 시: 기능 사용 가능 + 금색 점선으로 프리미엄임을 표시 */
.prem-gate-el.prem-unlocked{
  cursor:pointer;
}
/* 사이드바 메뉴: PRO 활성 — 골드 좌측 라인 */
.sb-menu-item.prem-gate-el.prem-unlocked{
  border-radius:8px !important;
  margin:.1rem .15rem !important;
}
.sb-menu-item.prem-gate-el.prem-unlocked::after{
  content:'PRO';
  position:absolute;
  right:.45rem;
  top:50%;
  transform:translateY(-50%);
  font-size:.52rem;font-weight:900;letter-spacing:.5px;
  background:linear-gradient(135deg,#D4AF37,#AA7C11);
  color:#fff;border-radius:4px;
  padding:.12rem .35rem;
  box-shadow:0 1px 3px rgba(184,134,11,.3);
}
/* 버튼: 기존 스타일 유지 + 미세 골드 glow */
button.prem-gate-el.prem-unlocked{
  background:var(--P) !important;
  color:#fff !important;
  border:none !important;
  box-shadow:var(--SH), 0 0 0 1px rgba(218,165,32,.3) !important;
}
button.prem-gate-el.prem-unlocked#dl-btn{ background:var(--P) !important; }
button.prem-gate-el.prem-unlocked#btn-batch-pdf{ background:var(--P) !important; }
.ed-tab.prem-gate-el.prem-unlocked{
  background:#fff !important;
  color:var(--MUT) !important;
  border:1.5px solid rgba(218,165,32,.4) !important;
  box-shadow:none !important;
  font-weight:600 !important;
}
.ed-tab.prem-gate-el.prem-unlocked.on{
  color:var(--P) !important;
  background:var(--P10) !important;
  border:1.5px solid var(--P) !important;
  font-weight:800 !important;
}
.set-item.prem-gate-el.prem-unlocked{
  background:none !important;
}
.set-item.prem-gate-el.prem-unlocked .si-lbl{ color:var(--TXT); font-weight:400; }
.set-item.prem-gate-el.prem-unlocked .si-val::before{ content:''; }
.set-item.prem-gate-el.prem-unlocked .si-val{ color:var(--MUT) !important; font-size:.85rem; }

/* trialGlow: trial-item 클래스 제거, prem-unlocked 공통 적용 */
@keyframes trialGlow{
  0%,100%{ box-shadow:0 0 0 0 rgba(218,165,32,0); }
  50%{ box-shadow:0 0 6px 2px rgba(218,165,32,.3); }
}
.premium-banner{background:linear-gradient(110deg,#1B3F6E 0%,#2460A7 60%,#B8860B 100%);border-radius:14px;padding:1.1rem 1.2rem;margin-bottom:1rem;color:#fff}
.pb-crown{font-size:2rem;margin-bottom:.4rem}
.pb-title{font-size:1rem;font-weight:800;margin-bottom:.2rem}
.pb-sub{font-size:.78rem;opacity:.8;line-height:1.55}
.pb-price{font-size:1.25rem;font-weight:900;margin:.55rem 0 .65rem;letter-spacing:-.5px}
.pb-price span{font-size:.75rem;font-weight:400;opacity:.8}
.feature-list{list-style:none;margin:.6rem 0}
.feature-list li{font-size:.8rem;padding:.22rem 0;display:flex;align-items:center;gap:.4rem}
.feature-list .f-ok{color:#4ADE80}
.feature-list .f-no{color:rgba(255,255,255,.35)}
.prem-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2rem 1rem;text-align:center}
.prem-gate-ico{font-size:2.5rem}
.prem-gate-msg{font-size:.85rem;color:var(--MUT);line-height:1.6}
/* 설정 탭 계정 섹션 */
.account-card{background:#fff;border-radius:16px;padding:1.4rem 1.4rem;color:var(--TXT);margin-bottom:1.2rem;border:1px solid var(--BRD);border-top:5px solid var(--P);box-shadow:0 8px 24px rgba(0,0,0,.04)}
.ac-row{display:flex;align-items:center;justify-content:space-between}
.ac-lbl{font-size:.72rem;color:var(--MUT);margin-bottom:.35rem;font-weight:600}
.ac-val{font-size:1.15rem;font-weight:900;color:var(--P);letter-spacing:-.2px}
.ac-exp{font-size:.75rem;color:var(--MUT);margin-top:.4rem;font-weight:500}
.ac-btn{background:#fff;border:1.5px solid var(--P);color:var(--P);border-radius:8px;padding:.4rem .9rem;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap}
.ac-btn:hover{background:var(--P10)}
.key-input{width:100%;padding:.72rem 1rem;border:2px solid var(--BRD);border-radius:10px;font-family:'Noto Sans KR',monospace;font-size:1rem;font-weight:700;letter-spacing:.15em;text-align:center;text-transform:uppercase;outline:none;transition:border-color .2s}
.key-input:focus{border-color:var(--PL)}
.key-input.valid{border-color:var(--G);background:var(--G10)}
.key-input.invalid{border-color:var(--R);background:var(--R10)}

/* ─── 급여 퍼센타일 ─────────────────────────── */
.pct-scope-tabs{display:flex;gap:.35rem;margin-bottom:1rem;background:#F3F4F6;border-radius:8px;padding:.25rem}
.pct-scope-tab{flex:1;padding:.38rem .5rem;border:none;border-radius:6px;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;background:transparent;color:var(--MUT);transition:all .15s}
.pct-scope-tab.on{background:#fff;color:var(--P);font-weight:800;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.pct-hero{border-radius:16px;padding:1.2rem 1.3rem;margin-bottom:1rem;color:#fff;text-align:center;position:relative;overflow:hidden}
.pct-hero::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.08);border-radius:16px}
.pct-hero-lbl{font-size:.75rem;opacity:.85;margin-bottom:.2rem;position:relative}
.pct-hero-num{font-size:3.2rem;font-weight:900;line-height:1;position:relative;letter-spacing:-1px}
.pct-hero-sub{font-size:.78rem;opacity:.8;margin-top:.3rem;position:relative}
.pct-gauge-wrap{background:#fff;border-radius:14px;box-shadow:var(--SH);padding:1rem 1.1rem;margin-bottom:.75rem}
.pct-gauge-lbl{display:flex;justify-content:space-between;font-size:.68rem;color:var(--MUT);font-weight:600;margin-bottom:.35rem}
.pct-gauge-track{height:18px;border-radius:9px;background:linear-gradient(90deg,#EF4444 0%,#F59E0B 33%,#10B981 66%,#1B3F6E 100%);position:relative;margin-bottom:.3rem}
.pct-gauge-marker{position:absolute;top:-5px;width:4px;height:28px;background:#fff;border-radius:2px;box-shadow:0 0 0 2px #1B3F6E,0 2px 6px rgba(0,0,0,.3);transform:translateX(-50%);transition:left .6s cubic-bezier(.34,1.56,.64,1)}
.pct-gauge-val{position:absolute;bottom:-1.4rem;font-size:.65rem;font-weight:800;color:var(--P);transform:translateX(-50%);white-space:nowrap}
.pct-bands{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:.5rem}
.pct-band{border-radius:8px;padding:.5rem .4rem;text-align:center;font-size:.7rem;line-height:1.4}
.pct-band-val{font-size:.82rem;font-weight:800;margin-top:.15rem}
.pct-comp-card{background:#fff;border-radius:14px;box-shadow:var(--SH);padding:.9rem 1rem;margin-bottom:.65rem}
.pct-comp-title{font-size:.78rem;font-weight:800;color:var(--TXT);margin-bottom:.6rem;display:flex;align-items:center;gap:.35rem}
.pct-comp-row{display:flex;align-items:center;gap:.6rem;padding:.32rem 0;border-bottom:1px solid var(--BRD);font-size:.8rem}
.pct-comp-row:last-child{border-bottom:none}
.pct-comp-bar-wrap{flex:1;height:7px;background:#F3F4F6;border-radius:4px;overflow:hidden}
.pct-comp-bar{height:100%;border-radius:4px;transition:width .5s ease}
.pct-comp-lbl{width:4.5rem;font-size:.72rem;color:var(--MUT);text-align:right;flex-shrink:0}
.pct-comp-nm{width:4.2rem;font-size:.72rem;font-weight:600;flex-shrink:0}
.pct-ai-box{background:linear-gradient(110deg,#1B3F6E,#2460A7);border-radius:14px;padding:1rem 1.1rem;color:#fff;font-size:.8rem;line-height:1.8}
.pct-ai-title{font-size:.85rem;font-weight:800;margin-bottom:.4rem}
.pct-loading{display:flex;align-items:center;gap:.6rem;color:rgba(255,255,255,.75);font-size:.8rem}

/* ── 5-Skin Brand Variables ─────────────────────── */
:root, html[data-skin="medical"] {
  --brand-mid: #0A1628;
  --brand-accent: #F5B544;
  --brand-tint5: #EFF3F9;
  --brand-tint8: #E2EAF5;
  --brand-txt: #0F2340;
  --brand-muted: #5E7A9E;
}
html[data-skin="dentist"] {
  --brand-mid: #0D2B3E;
  --brand-accent: #5FD4D0;
  --brand-tint5: #EDF4F8;
  --brand-tint8: #DDEEF5;
  --brand-txt: #0D2B3E;
  --brand-muted: #4A7A96;
}
html[data-skin="oriental"] {
  --brand-mid: #3B1A00;
  --brand-accent: #E8B872;
  --brand-tint5: #FBF5EE;
  --brand-tint8: #F5EAD8;
  --brand-txt: #3B1A00;
  --brand-muted: #8B5E30;
}
html[data-skin="pharm"] {
  --brand-mid: #3D0F4D;
  --brand-accent: #C8A8E6;
  --brand-tint5: #F7F2FA;
  --brand-tint8: #EDE0F6;
  --brand-txt: #3D0F4D;
  --brand-muted: #8B5EAA;
}
html[data-skin="vet"] {
  --brand-mid: #0F3D22;
  --brand-accent: #D6E84A;
  --brand-tint5: #EEF6F1;
  --brand-tint8: #DCEEE3;
  --brand-txt: #0F3D22;
  --brand-muted: #4A8A5E;
}

/* ── AI 노무상담 선택 바 ─────────────────────────── */
.lai-selector {
  display: flex; gap: .5rem; flex-wrap: wrap;
  margin-bottom: .6rem;
}
.lai-btn {
  display: flex; align-items: center; gap: .4rem;
  padding: .45rem .85rem; border-radius: 8px;
  border: 1.5px solid var(--BRD);
  background: #fff; color: var(--MUT);
  font-family: 'Noto Sans KR', sans-serif;
  font-size: .8rem; font-weight: 600;
  cursor: pointer; transition: all .15s;
}
.lai-btn.on {
  border-color: var(--brand-mid);
  background: var(--brand-tint8);
  color: var(--brand-txt);
  font-weight: 800;
}
.lai-badge {
  font-size: .58rem; background: rgba(0,0,0,.06);
  border-radius: 4px; padding: .05rem .3rem; margin-left: .1rem;
}
.lai-btn.on .lai-badge { background: rgba(0,0,0,.1); }
.lai-desc {
  font-size: .73rem; color: var(--MUT); line-height: 1.6;
  margin-bottom: .75rem; padding: .5rem .75rem;
  background: var(--brand-tint5); border-radius: 8px;
  border-left: 3px solid var(--brand-accent);
}

/* ── Labor News 공통 컴포넌트 ─────────────────────── */
.ln-banner {
  background: var(--brand-tint5);
  border-left: 4px solid var(--brand-accent);
  border-radius: 14px;
  padding: 1rem 1.2rem;
  color: var(--brand-txt);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .85rem;
}
.ln-banner-icon { font-size: 2rem; flex-shrink: 0; }
.ln-banner-title { font-size: 1rem; font-weight: 900; letter-spacing: -.3px; }
.ln-banner-sub { font-size: .73rem; opacity: .65; margin-top: .15rem; }

.ln-pill {
  font-size: .68rem; font-weight: 800;
  border-radius: 6px; padding: .3rem .7rem;
  margin-bottom: .5rem; display: inline-block; letter-spacing: .3px;
}
.ln-pill-danger { color: #DC2626; background: #FEF2F2; }
.ln-pill-brand { color: var(--brand-txt); background: var(--brand-tint8); }
.ln-pill-brand + .ln-pill-brand,
.ln-pill-brand ~ * { margin-top: .85rem; }

.ln-card {
  background: #fff; border-radius: 12px; box-shadow: var(--SH);
  overflow: hidden; margin-bottom: .65rem;
}
.ln-card-danger { border-left: 4px solid #DC2626; }
.ln-card-brand  { border-left: 4px solid var(--brand-mid); }
.ln-card-body   { padding: .7rem .9rem .4rem; }
.ln-card-header { display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem; flex-wrap: wrap; }

.ln-badge {
  font-size: .72rem; font-weight: 800;
  padding: .18rem .5rem; border-radius: 999px;
}
.ln-badge-danger { background: #FEF2F2; color: #DC2626; }
.ln-badge-brand  { background: var(--brand-tint8); color: var(--brand-txt); }
.ln-badge-date   { background: #F1F5F9; color: #475569; font-weight: 700; }

.ln-title { font-size: .88rem; font-weight: 800; color: #1A252F; margin-bottom: .3rem; }
.ln-body  { font-size: .84rem; color: #374151; line-height: 1.8; }

.ln-check {
  padding: .45rem .9rem; font-size: .69rem; font-weight: 600;
  cursor: pointer; user-select: none;
  display: flex; align-items: center; gap: .4rem;
}
.ln-check-icon { font-size: .85rem; flex-shrink: 0; }
.ln-check-danger { background: #FEF2F2; color: #991B1B; }
.ln-check-brand  { background: var(--brand-tint5); color: var(--brand-txt); }

/* 4대보험 테이블 */
.ln-ins-table { font-size: .74rem; border-collapse: collapse; width: 100%; display: table; }
.ln-ins-head  { display: table-row; background: #F8FAFC; }
.ln-ins-row   { display: table-row; }
.ln-ins-row-alt { display: table-row; background: #FAFAFA; }
.ln-ins-th {
  display: table-cell; padding: .32rem .5rem;
  font-weight: 800; color: #475569; font-size: .67rem;
  border-bottom: 1px solid #E2E8F0;
}
.ln-ins-th-r { text-align: right; }
.ln-ins-td { display: table-cell; padding: .32rem .5rem; border-bottom: 1px solid #F1F5F9; }
.ln-ins-td-r { text-align: right; }
.ln-ins-td-bold { font-weight: 700; }
.ln-ins-td-last { border-bottom: none; }
.ln-ins-tip { padding: .45rem .9rem; font-size: .69rem; font-weight: 600; background: var(--brand-tint5); color: var(--brand-txt); }

/* ─── News 아코디언 ─────────────────────────── */
.ln-acc-hdr {
  display: flex; align-items: center; gap: .6rem;
  padding: .65rem .9rem; cursor: pointer; user-select: none;
}
.ln-acc-hdr:hover { filter: brightness(.97); }
.ln-card-danger .ln-acc-hdr { background: #FFF8F8; }
.ln-card-brand  .ln-acc-hdr { background: var(--brand-tint5); }
.ln-acc-hdr-inner { flex: 1; }
.ln-acc-hdr-title { font-size: .95rem; font-weight: 800; color: #1A252F; margin-top: .2rem; }
.ln-acc-chevron { font-size: .72rem; color: #94A3B8; flex-shrink: 0; transition: transform .2s; }
.ln-acc-hdr.open .ln-acc-chevron { transform: rotate(90deg); }
.ln-acc-body { display: none; }
.ln-acc-body.open { display: block; }
.ln-badge-new {
  font-size: .58rem; font-weight: 800; padding: .1rem .4rem;
  border-radius: 999px; background: #EF4444; color: #fff;
  animation: news-pulse 1.5s ease-in-out infinite; flex-shrink: 0;
}
@keyframes news-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .35; }
}

/* 사이드바 NEW dot */
.news-sb-dot {
  display: inline-block; width: 8px; height: 8px;
  background: #EF4444; border-radius: 50%; margin-left: 5px;
  vertical-align: middle;
  animation: news-pulse 1.5s ease-in-out infinite;
}

/* ─── 노무 Q&A ─────────────────────────────── */
.labor-tab{flex:1;padding:.45rem .5rem;border:none;border-radius:7px;font-family:'Noto Sans KR',sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;background:transparent;color:var(--MUT);transition:all .15s}
.labor-tab.on{background:var(--P);color:#fff;font-weight:700}
.labor-search-wrap{margin-bottom:.75rem}
.labor-search-wrap input{width:100%;padding:.72rem 1rem;border:2px solid var(--BRD);border-radius:10px;font-family:'Noto Sans KR',sans-serif;font-size:.9rem;outline:none;transition:border-color .2s;background:#fff}
.labor-search-wrap input:focus{border-color:var(--brand-mid)}
.faq-item{background:#fff;border-radius:12px;box-shadow:var(--SH);margin-bottom:.55rem;overflow:hidden;transition:box-shadow .12s}
.faq-item:hover{box-shadow:var(--SH2)}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;cursor:pointer;gap:.75rem}
.faq-q-txt{font-size:.88rem;font-weight:700;flex:1;line-height:1.4}
.faq-tag{font-size:.62rem;font-weight:700;padding:.12rem .45rem;border-radius:5px;white-space:nowrap;flex-shrink:0}
.faq-arr{color:var(--MUT);font-size:.8rem;flex-shrink:0;transition:transform .2s}
.faq-item.open .faq-arr{transform:rotate(180deg)}
.faq-a{display:none;padding:.75rem 1rem 1rem;border-top:1px solid var(--BRD);font-size:.83rem;line-height:1.9;color:var(--TXT)}
.faq-item.open .faq-a{display:block}
.faq-a strong{color:var(--P)}
.faq-a .tip{background:var(--P10);border-left:3px solid var(--PL);border-radius:0 6px 6px 0;padding:.4rem .7rem;margin-top:.5rem;font-size:.78rem;color:var(--P)}
.faq-a .warn{background:var(--R10);border-left:3px solid var(--R);border-radius:0 6px 6px 0;padding:.4rem .7rem;margin-top:.5rem;font-size:.78rem;color:var(--R)}
.faq-empty{text-align:center;padding:2.5rem 1rem;color:var(--MUT);font-size:.85rem}
/* AI 채팅 */
.chat-bubble{display:flex;gap:.6rem;align-items:flex-start}
.chat-bubble.user-bubble{flex-direction:row-reverse}
.chat-avatar{width:1.9rem;height:1.9rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;background:var(--P10)}
.chat-bubble.user-bubble .chat-avatar{background:var(--P);color:#fff;font-size:.75rem;font-weight:700}
.chat-msg{background:#F3F4F6;border-radius:12px;border-top-left-radius:3px;padding:.6rem .85rem;font-size:.84rem;line-height:1.75;max-width:85%;color:var(--TXT);white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}
.chat-bubble.user-bubble .chat-msg{background:var(--P);color:#fff;border-top-left-radius:12px;border-top-right-radius:3px}
.chat-bubble.loading .chat-msg{color:var(--MUT);font-style:italic}
.chat-typing{display:inline-flex;gap:4px;align-items:center;padding:.2rem 0}
.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--MUT);animation:typingDot 1.2s infinite}
.chat-typing span:nth-child(2){animation-delay:.2s}
.chat-typing span:nth-child(3){animation-delay:.4s}
@keyframes typingDot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
.labor-quick-btns{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}
.labor-quick-btns button{background:#fff;border:1.5px solid var(--BRD);border-radius:8px;padding:.35rem .7rem;font-family:'Noto Sans KR',sans-serif;font-size:.75rem;font-weight:600;cursor:pointer;color:var(--TXT);transition:all .12s}
.labor-quick-btns button:hover{border-color:var(--PL);color:var(--P);background:var(--P10)}

/* ── 캘린더 날짜 호버 툴팁 ── */
#cal-tooltip{
  position:fixed;z-index:9999;display:none;
  background:#1E293B;color:#fff;
  border-radius:10px;padding:8px 12px;
  font-size:.78rem;font-family:'Noto Sans KR',sans-serif;
  max-width:210px;min-width:130px;
  pointer-events:none;
  box-shadow:0 6px 24px rgba(0,0,0,.35);
  line-height:1.85;
  animation:tipFadeIn .12s ease;
}
#cal-tooltip div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes tipFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.cl-item {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .78rem;
  color: var(--TXT);
  cursor: pointer;
  line-height: 1.5;
}
.cl-item input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: #16A34A;
  cursor: pointer;
}
.cl-item input[type="checkbox"]:checked + span {
  text-decoration: line-through;
  color: var(--MUT);
}

/* 체크리스트 하이라이트 애니메이션 */
@keyframes highlightPulse {
  0%   { box-shadow: 0 0 0 0 rgba(22,163,74,.5); }
  50%  { box-shadow: 0 0 0 10px rgba(22,163,74,0); }
  100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); }
}
.highlight-pulse {
  animation: highlightPulse 1.5s ease 2;
}

/* ── 서약서 모달 ── */
@media print {
  body > *:not(#closing-pledge-modal) { display: none !important; }
  #closing-pledge-modal { position: static !important; background: none !important; }
}
/* ── 팝업 차단 알림 ── */
#popup-blocked-notice{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:99999;display:flex;width:calc(100% - 32px);max-width:460px;animation:pbnSlideIn .25s ease}
@keyframes pbnSlideIn{from{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.pbn-content{display:flex;align-items:flex-start;gap:12px;background:#1E293B;color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 8px 32px rgba(0,0,0,.35);width:100%}
.pbn-icon{font-size:1.4rem;flex-shrink:0;margin-top:1px}
.pbn-body{flex:1}
.pbn-title{font-size:.88rem;font-weight:800;margin-bottom:4px}
.pbn-msg{font-size:.78rem;opacity:.85;line-height:1.6}
.pbn-close{background:rgba(255,255,255,.15);border:none;color:#fff;border-radius:7px;width:26px;height:26px;cursor:pointer;font-size:.75rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s}
.pbn-close:hover{background:rgba(255,255,255,.28)}

/* ── 수당 계산 탭 반짝임 효과 ── */
@keyframes blink-btn-anim {
  0%, 100% {
    background-color: #F59E0B;
    color: #fff;
    border-color: #D97706;
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.6);
  }
  50% {
    background-color: #FFFBEB;
    color: #B45309;
    border-color: #FCD34D;
    box-shadow: none;
  }
}
.ed-tab.blink-btn {
  animation: blink-btn-anim 1.5s infinite ease-in-out !important;
}

/* AI 계약서 초안 작성 */
.contract-ai-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px;margin:10px 0;background:#eef4ff;border:1px solid #b8cdf5;border-radius:12px}
.contract-ai-entry p{margin:5px 0;font-size:12px}
.contract-ai-dialog{width:min(720px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #cbd5e1;border-radius:16px;padding:22px;color:#172b4d;background:#fff;box-sizing:border-box}
.contract-ai-dialog::backdrop{background:rgba(15,23,42,.55)}
.contract-ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.contract-ai-head h2{font-size:20px;margin:0}.contract-ai-head button{background:none;border:0;font-size:22px;cursor:pointer}
.contract-ai-dialog p,.contract-ai-dialog dd{font-size:13px;line-height:1.6;white-space:pre-wrap}.contract-ai-dialog dl>div{display:grid;grid-template-columns:140px 1fr;gap:8px;padding:5px;border-bottom:1px solid #e2e8f0}.contract-ai-dialog dt{font-size:12px;font-weight:700}.contract-ai-dialog dd{margin:0}
.contract-ai-dialog label{display:block;font-weight:700;margin:14px 0}.contract-ai-dialog small{display:block;font-weight:400;margin:5px 0}.contract-ai-dialog textarea{display:block;box-sizing:border-box;width:100%;min-height:85px;padding:10px;margin-top:7px;border:1px solid #94a3b8;border-radius:8px;font:inherit;resize:vertical}
.contract-ai-dialog article{border:1px solid #cbd5e1;border-radius:10px;padding:12px;margin:12px 0}.contract-ai-choice{display:flex!important;gap:8px;align-items:center}.contract-ai-actions{display:flex;gap:8px;flex-wrap:wrap}.contract-ai-help{color:#52637b}.contract-ai-warning,.contract-ai-status{color:#9a3412}.contract-ai-dialog button:disabled{opacity:.5;cursor:not-allowed}
/* 백신물품관리 상세 원장 레이아웃 */ #view-inventory .inventory-view{max-width:none;width:100%}#view-inventory .inventory-calendar-card{display:none}.inventory-ledger-row{grid-template-columns:82px 66px minmax(145px,1.2fr) minmax(100px,.8fr) 88px 65px 110px 105px;gap:.45rem}.inventory-ledger-row .invoice{display:block}.inventory-total-field{background:#eef4fb!important;font-weight:800}.inventory-form .date-label,.inventory-form .invoice-date-label{display:flex;flex-direction:column;gap:.28rem;color:#516174;font-size:.7rem;font-weight:700}@media(max-width:900px){.inventory-ledger-row{grid-template-columns:76px 58px minmax(130px,1fr) 90px 90px}.inventory-ledger-row .unit,.inventory-ledger-row .qty,.inventory-ledger-row .invoice{display:none}}
.inventory-item-actions{display:flex;gap:.4rem;margin-top:.7rem}.inventory-item-actions button{flex:1;border:1px solid var(--BRD);border-radius:7px;background:#fff;color:var(--TXT);padding:.38rem;font:700 .7rem 'Noto Sans KR',sans-serif;cursor:pointer}.inventory-item-actions .payment-action{background:var(--P);border-color:var(--P);color:#fff}
/* 품목 목록: 행 하나를 클릭하면 단일 부분결제 창을 연다. */
.inventory-item-list{display:block;border:1px solid var(--BRD);border-radius:12px;overflow:hidden;background:#fff}.inventory-list-head,.inventory-list-row{display:grid;grid-template-columns:90px minmax(230px,1fr) 120px 160px;gap:1rem;align-items:center;padding:.72rem .85rem}.inventory-list-head{background:#f8fafc;color:var(--MUT);font-size:.68rem;font-weight:800}.inventory-list-row{width:100%;border:0;border-top:1px solid #edf1f6;background:#fff;text-align:left;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;color:var(--TXT);cursor:pointer}.inventory-list-row:hover{background:var(--P10)}.inventory-list-row strong,.inventory-list-row small{display:block}.inventory-list-row strong{font-size:.82rem}.inventory-list-row small{font-size:.66rem;color:var(--MUT);margin-top:.16rem}.inventory-list-row>span:last-child{font-weight:800;color:#b45309}.inventory-list-row>span:last-child small{font-weight:500;color:var(--P)}@media(max-width:700px){.inventory-list-head{display:none}.inventory-list-row{grid-template-columns:64px minmax(0,1fr) 92px;gap:.55rem}.inventory-list-row>span:nth-child(3){display:none}.inventory-list-row strong{font-size:.76rem}}
#view-inventory .inventory-ledger-card{display:none}
.inventory-detail{margin:0 0 1rem;padding:1rem;background:#f8fbff;border:1px solid #d9e6f5;border-radius:12px}.inventory-detail .inventory-form-head>div span,.inventory-payment-form .inventory-form-head>div span{display:block;margin-top:.2rem;font-size:.7rem;color:var(--MUT)}.inventory-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.inventory-detail-stats>div{padding:.65rem;background:#fff;border:1px solid #e3eaf3;border-radius:8px}.inventory-detail-stats span{display:block;font-size:.66rem;color:var(--MUT)}.inventory-detail-stats strong{display:block;margin-top:.18rem;font-size:.83rem}.inventory-detail-stats .balance{color:#b45309}.inventory-detail-actions{display:flex;gap:.45rem;margin:.75rem 0}.inventory-detail-actions button{border:1px solid var(--BRD);background:#fff;border-radius:7px;padding:.45rem .7rem;font:700 .75rem 'Noto Sans KR',sans-serif;cursor:pointer}.inventory-detail-actions .payment-action{background:var(--P);border-color:var(--P);color:#fff}.inventory-history{border-top:1px solid #e4ebf4;padding-top:.45rem}.inventory-history>div{display:grid;grid-template-columns:92px 58px 1fr;gap:.5rem;padding:.35rem 0;font-size:.7rem;color:var(--MUT)}.inventory-history b{color:var(--P)}@media(max-width:700px){.inventory-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.inventory-list-head,.inventory-list-row{grid-template-columns:48px 90px minmax(230px,1fr) 120px 160px}.inventory-list-no{font-weight:800;color:var(--MUT);text-align:center}@media(max-width:700px){.inventory-list-row{grid-template-columns:34px 58px minmax(0,1fr) 92px}.inventory-list-row>span:nth-child(4){display:none}}

/* ── 의료기관 설정: 실제 수정 탭 ───────────────────────── */
.clinic-settings-sheet{width:100vw!important;height:100dvh;max-height:none!important;margin:0!important;padding:1rem clamp(1rem,3vw,3.25rem) 1.15rem!important;box-sizing:border-box;border-radius:0!important;overflow:hidden!important;display:flex;flex-direction:column}
.clinic-settings-sheet .mhandle{display:none}.clinic-settings-sheet>.clinic-settings-title,.clinic-settings-sheet>.clinic-settings-tabs,.clinic-settings-sheet>.frow{flex:none}
.clinic-settings-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin:.1rem 0 .85rem}.clinic-settings-kicker{font-size:.68rem;font-weight:900;letter-spacing:.12em;color:#2563EB;margin-bottom:.18rem}.clinic-settings-title .mtitle{margin:0}.clinic-settings-subtitle{margin-top:.25rem;font-size:.78rem;color:var(--MUT)}
.clinic-settings-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:0 0 .8rem;padding:.38rem;background:#F1F5F9;border:1px solid #D8E3F0;border-radius:12px}.clinic-settings-tabs button{border:1px solid transparent;border-radius:8px;background:transparent;color:#58708A;padding:.62rem .7rem;font:800 .8rem 'Noto Sans KR',sans-serif;cursor:pointer;white-space:nowrap}.clinic-settings-tabs button:hover{background:#fff;color:#163D6B}.clinic-settings-tabs button.on{background:#173B68;border-color:#173B68;color:#fff;box-shadow:0 2px 5px rgba(15,41,77,.16)}.clinic-settings-panel{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:0 .2rem .8rem}.clinic-settings-panel[hidden]{display:none!important}.clinic-settings-sheet>.frow:last-child{padding-top:.6rem}.worker-size-toggle{display:flex;gap:.35rem;margin:.45rem 0}.worker-size-toggle button{padding:.33rem .65rem;border:1px solid #BFDBFE;border-radius:7px;background:#fff;color:#1D4ED8;font:800 .7rem 'Noto Sans KR',sans-serif;cursor:pointer}.worker-size-toggle button.on{background:#1D4ED8;border-color:#1D4ED8;color:#fff}
@media(max-width:700px){.clinic-settings-sheet{padding:.9rem .75rem 1rem!important}.clinic-settings-title{margin-bottom:.65rem}.clinic-settings-subtitle{font-size:.72rem}.clinic-settings-tabs{gap:.25rem;padding:.25rem}.clinic-settings-tabs button{padding:.55rem .25rem;font-size:.68rem}}
