/* ─── ENS Work Manager — Design System ─── */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;600&display=swap');

:root {
  --pk:#090A0D; --pg:#8B949E; --pl:#E2E5EA;
  --bg:#F2F2F2; --sf:#FFFFFF; --sf2:#F7F8FA;
  --bd:#E2E5EA; --bd2:#C8CDD6;
  --tx:#090A0D; --td:#4B5563; --ts:#9CA3AF;
  --pb1:#1763A6; --pb2:#176FA6;
  --gn:#1A7F3C; --yl:#A16200; --rd:#B91C1C; --pu:#5B3FA6; --or:#C05621;
  --fm:'IBM Plex Sans KR',sans-serif;
  --fm2:'IBM Plex Mono',monospace;
  --r:6px; --rl:10px;
  /* 로그인 오버레이 */
  --lov-bg:rgba(242,242,242,0.92); --lov-card:#FFFFFF;
}

[data-theme="dark"] {
  --bg:#090A0D; --sf:#13181F; --sf2:#1A2230;
  --bd:#252D3A; --bd2:#334155;
  --tx:#F2F2F2; --td:#A4A5A6; --ts:#6B7280;
  --pb1:#1763A6; --pb2:#176FA6;
  --gn:#22C55E; --yl:#F59E0B; --rd:#F87171; --pu:#A78BFA; --or:#FB923C;
  --lov-bg:rgba(9,10,13,0.95); --lov-card:#13181F;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html,body { height:100%; overflow:hidden; }
body { font-family:var(--fm); background:var(--bg); color:var(--tx); display:flex; font-size:14px; line-height:1.5; }
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--bd2); border-radius:3px; }

/* ─── SIDEBAR ─── */
.sb { width:240px; min-width:240px; background:var(--pk); display:flex; flex-direction:column; overflow:hidden; }
.sb-logo { padding:16px 14px 12px; border-bottom:1px solid #1E242C; flex-shrink:0; }
.sb-logo-top { display:flex; align-items:baseline; gap:3px; }
.sb-ens { font-family:var(--fm2); font-size:22px; font-weight:700; color:var(--pb2); letter-spacing:-.02em; line-height:1; }
.sb-eng { font-size:11px; font-weight:300; color:var(--pl); letter-spacing:.02em; margin-left:2px; }
.sb-line { height:1.5px; width:100%; background:linear-gradient(90deg,var(--pb1),transparent); margin:3px 0 4px; }
.sb-desc { font-size:8.5px; color:var(--pg); letter-spacing:.04em; }
.sb-tag { font-family:var(--fm2); font-size:9px; font-weight:600; color:var(--pb2); letter-spacing:.15em; text-transform:uppercase; background:rgba(23,111,166,.18); border:1px solid rgba(23,111,166,.35); padding:2px 7px; border-radius:20px; display:inline-block; margin-top:8px; }
.sb-sec { font-size:9px; font-weight:700; color:#3A4555; letter-spacing:.1em; text-transform:uppercase; padding:0 12px; margin:10px 0 4px; }

/* 프로젝트 목록 */
.proj-list { flex:1; overflow-y:auto; padding:4px 8px; }
.proj-item { display:flex; align-items:center; gap:8px; padding:7px 10px 6px; cursor:pointer; transition:background .15s; border-radius:var(--r); margin-bottom:1px; }
.proj-item:hover { background:#141B24; }
.proj-item.active-proj { background:rgba(23,99,166,.18); border-left:3px solid var(--pb1); }
.proj-cb { width:13px; height:13px; cursor:pointer; flex-shrink:0; accent-color:var(--pb1); }
.proj-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.proj-name { font-size:12px; font-weight:500; color:#8B949E; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.proj-item.active-proj .proj-name { color:#E2E5EA; font-weight:600; }
.proj-prog { font-family:var(--fm2); font-size:10px; color:#3A4555; }
.proj-item.proj-done .proj-dot { background:#9CA3AF !important; }
.proj-item.proj-done .proj-name { color:#4B5563 !important; text-decoration:line-through; text-decoration-color:#9CA3AF; }
.proj-item.proj-done .proj-prog { color:#9CA3AF; }

.sb-nav { padding:4px 8px; flex-shrink:0; border-top:1px solid #1E242C; }
.nb { display:flex; align-items:center; gap:8px; width:100%; padding:7px 10px; background:transparent; border:none; border-radius:var(--r); color:#8B949E; font-family:var(--fm); font-size:12px; font-weight:500; cursor:pointer; text-align:left; transition:all .15s; white-space:nowrap; overflow:hidden; }
.nb:hover { background:#1A2030; color:#E2E5EA; }
.nb.active { background:rgba(23,99,166,.25); color:#7BBAFF; border-left:2px solid var(--pb1); }
.nbi { font-size:13px; width:16px; text-align:center; flex-shrink:0; }
.sb-ft { padding:10px 14px; border-top:1px solid #1E242C; font-size:10px; color:#3A4555; flex-shrink:0; }

/* ─── MAIN ─── */
.main { flex:1; display:flex; flex-direction:column; overflow:hidden; }
.topbar { height:50px; min-height:50px; background:var(--pk); border-bottom:3px solid var(--pb1); display:flex; align-items:center; padding:0 20px; gap:10px; }
.tbt { font-size:14px; font-weight:700; color:var(--pl); flex:1; }
.tbt span { font-family:var(--fm2); font-size:11px; color:var(--pg); margin-left:8px; }
.cont { flex:1; overflow-y:auto; padding:18px 22px; }
.pnl { display:none; }
.pnl.active { display:block; }

/* ─── BUTTONS ─── */
.btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border-radius:var(--r); border:none; font-family:var(--fm); font-size:12px; font-weight:600; cursor:pointer; transition:all .15s; white-space:nowrap; }
.bp { background:var(--pb1); color:#fff; }
.bp:hover { background:var(--pb2); }
.bo { background:var(--sf); color:var(--td); border:1px solid var(--bd2); }
.bo:hover { border-color:var(--pb1); color:var(--pb1); }
.bxl { background:rgba(26,127,60,.08); color:var(--gn); border:1px solid rgba(26,127,60,.25); }
.bxl:hover { background:rgba(26,127,60,.15); }
.bgg { background:transparent; color:var(--td); border:1px solid var(--bd); font-size:11px; padding:3px 8px; }
.bgg:hover { border-color:var(--pb1); color:var(--pb1); }
.bdd { background:transparent; color:var(--rd); border:1px solid rgba(185,28,28,.25); font-size:11px; padding:3px 8px; }
.bdd:hover { background:rgba(185,28,28,.08); }

/* ─── CARDS ─── */
.sg { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; margin-bottom:16px; }
.sc { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); padding:14px 16px; }
.sc .lbl { font-size:10px; font-weight:700; color:var(--ts); letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; }
.sc .val { font-family:var(--fm2); font-size:22px; font-weight:600; line-height:1; }
.sc .sub { font-size:11px; color:var(--pg); margin-top:3px; }

/* ─── TABLE ─── */
.tw { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow:hidden; margin-bottom:14px; }
.th { display:flex; align-items:center; justify-content:space-between; padding:11px 16px; border-bottom:1px solid var(--bd); }
.th h3 { font-size:13px; font-weight:700; }
.tha { display:flex; gap:7px; align-items:center; }
table { width:100%; border-collapse:collapse; }
thead th { padding:8px 12px; text-align:left; font-size:10px; font-weight:700; color:var(--pg); letter-spacing:.05em; text-transform:uppercase; background:var(--sf2); border-bottom:1px solid var(--bd); }
tbody tr { border-bottom:1px solid var(--bd); transition:background .1s; }
tbody tr:last-child { border-bottom:none; }
tbody tr:hover { background:var(--sf2); }
tbody td { padding:8px 12px; font-size:12px; vertical-align:middle; }
.mono { font-family:var(--fm2); font-size:11px; color:var(--td); }

/* ─── BADGES ─── */
.bdg { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:600; }
.wf-inprogress { background:rgba(23,99,166,.08); color:var(--pb1); border:1px solid rgba(23,99,166,.2); }
.wf-internal { background:rgba(161,98,0,.08); color:var(--yl); border:1px solid rgba(161,98,0,.2); }
.wf-issued { background:rgba(91,63,166,.08); color:var(--pu); border:1px solid rgba(91,63,166,.2); }
.wf-approved { background:rgba(26,127,60,.08); color:var(--gn); border:1px solid rgba(26,127,60,.2); }

/* ─── PROGRESS ─── */
/* ── DCL 정렬 헤더 ──────────────────────────────────── */
th.sortable { cursor:pointer; user-select:none; white-space:nowrap; }
th.sortable:hover { background:rgba(23,99,166,.08); }
th.sortable.sort-active { color:var(--pb1); }
th.sortable .sort-icon { font-size:10px; opacity:.5; margin-left:3px; }
th.sortable.sort-active .sort-icon { opacity:1; }

.pw { display:flex; align-items:center; gap:7px; }
.pb { flex:1; max-width:100px; height:4px; background:var(--bd); border-radius:2px; overflow:hidden; }
.pf { height:100%; border-radius:2px; transition:width .4s; }
.pp { font-family:var(--fm2); font-size:11px; color:var(--td); min-width:30px; }

/* ─── OVERVIEW CARDS ─── */
.proj-card { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); padding:16px; margin-bottom:10px; border-left:4px solid var(--bd); }
.proj-card-hd { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.proj-card-nm { font-size:14px; font-weight:700; flex:1; }
.proj-card-meta { font-size:11px; color:var(--pg); }
.proj-card.proj-card-done { border-left-color:#9CA3AF !important; opacity:.7; }
.proj-card.proj-card-done .proj-card-nm { color:#6B7280; text-decoration:line-through; text-decoration-color:#9CA3AF; }

/* ─── CRS ─── */
.crs-status-open { background:rgba(185,28,28,.07); color:var(--rd); border:1px solid rgba(185,28,28,.2); padding:2px 8px; border-radius:4px; font-size:11px; font-weight:700; cursor:pointer; }
.crs-status-replied { background:rgba(161,98,0,.07); color:var(--yl); border:1px solid rgba(161,98,0,.2); padding:2px 8px; border-radius:4px; font-size:11px; font-weight:700; cursor:pointer; }
.crs-status-closed { background:rgba(26,127,60,.07); color:var(--gn); border:1px solid rgba(26,127,60,.2); padding:2px 8px; border-radius:4px; font-size:11px; font-weight:700; cursor:pointer; }

/* ─── ISSUE ─── */
.sev-high { background:#FDE8E8; color:#B91C1C; border:1px solid #FECACA; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:700; }
.sev-medium { background:#FEF3C7; color:#92400E; border:1px solid #FDE68A; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:700; }
.sev-low { background:#D1FAE5; color:#065F46; border:1px solid #A7F3D0; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:700; }
.issue-dcl-chips { display:flex; flex-wrap:wrap; gap:5px; max-width:220px; }
.issue-dcl-chip { background:rgba(23,99,166,.07); color:var(--pb1); border:1px solid rgba(23,99,166,.18); padding:2px 7px; border-radius:999px; font-size:10px; font-weight:700; cursor:pointer; }
.issue-dcl-chip:hover { border-color:rgba(23,99,166,.35); background:rgba(23,99,166,.12); }

/* ─── CALENDAR ─── */
.cctl { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.cctl h3 { font-size:15px; font-weight:700; flex:1; }
.cnb { background:var(--sf); border:1px solid var(--bd); color:var(--td); width:28px; height:28px; border-radius:var(--r); cursor:pointer; font-size:14px; display:flex; align-items:center; justify-content:center; }
.cnb:hover { border-color:var(--pb1); color:var(--pb1); }
.cgrid { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow:hidden; }
.cwds { display:grid; grid-template-columns:repeat(7,1fr); background:var(--pk); }
.cwd { padding:8px; text-align:center; font-size:10px; font-weight:700; color:var(--pg); letter-spacing:.05em; }
.cwd.sun { color:#FF8585; }
.cwd.sat { color:#7BBAFF; }
.ccs { display:grid; grid-template-columns:repeat(7,1fr); }
.cc { min-height:88px; padding:5px; border-right:1px solid var(--bd); border-bottom:1px solid var(--bd); position:relative; cursor:pointer; min-width:0; overflow:hidden; }
.cc:hover { background:#F0F4FF; }
.cc.oth { opacity:.3; background:var(--sf2); }
.cc.tod { background:#EEF4FF; }
.cdt { font-family:var(--fm2); font-size:11px; font-weight:700; width:20px; height:20px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:var(--td); margin-bottom:3px; }
.cc.tod .cdt { background:var(--pb1); color:white; }
.cdt.sun { color:var(--rd); }
.cdt.sat { color:var(--pb1); }
.cev { display:flex; align-items:center; padding:2px 4px; border-radius:3px; font-size:9px; font-weight:600; margin-bottom:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border-left:3px solid; cursor:pointer; transition:transform .12s ease, box-shadow .12s ease, filter .12s ease; transform-origin:left center; }
.cev:hover { transform:scale(1.06); filter:saturate(1.05); box-shadow:0 6px 14px rgba(9,10,13,.12); z-index:5; position:relative; }
.cev:active { transform:scale(1.03); }

/* ─── LOG ─── */
.llay { display:flex; height:calc(100vh - 50px - 36px); }
.lsd { width:240px; flex-shrink:0; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow-y:auto; }
.lsd-hd { padding:10px 14px; background:var(--sf2); border-bottom:1px solid var(--bd); font-size:10px; font-weight:700; color:var(--pg); letter-spacing:.07em; text-transform:uppercase; }
.ldi { display:flex; align-items:center; gap:8px; padding:9px 14px; border-bottom:1px solid var(--bd); cursor:pointer; transition:background .1s; }
.ldi:hover { background:var(--sf2); }
.ldi.active { background:rgba(23,99,166,.07); border-left:3px solid var(--pb1); }
.lno { font-family:var(--fm2); font-size:10px; color:var(--pg); }
.lnm { font-size:12px; font-weight:600; }
.lct { margin-left:auto; font-size:10px; color:var(--pg); background:var(--sf2); border:1px solid var(--bd); padding:1px 6px; border-radius:10px; }
.lmain { flex:1; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); display:flex; flex-direction:column; overflow:hidden; }
.lmhd { padding:10px 12px; border-bottom:1px solid var(--bd); background:var(--sf2); display:flex; align-items:center; gap:10px; }
.lmhd h3 { font-size:13px; font-weight:700; flex:1; }
.lents { flex:1; overflow-y:auto; padding:16px 20px; display:flex; flex-direction:column; gap:12px; background:var(--sf); }
.lent { display:flex; flex-direction:column; gap:8px; padding:16px 18px; background:var(--sf2); border:1px solid var(--bd); border-radius:var(--rl); transition:all .2s ease; border-left:4px solid var(--bd); }
.lent:hover { border-color:var(--pb1); border-left-color:var(--pb1); background:var(--sf); box-shadow:0 4px 12px rgba(0,0,0,.05); }
.lent:hover .lea { opacity:1; }
.led { font-family:var(--fm2); font-size:12px; font-weight:700; color:var(--pb1); }
.leb { flex:1; }
.let { font-size:14px; line-height:1.7; color:var(--tx); }
.lea { padding-top:8px; border-top:1px solid rgba(0,0,0,.05); display:flex; justify-content:flex-end; opacity:0; transition:opacity .2s; }
.linp { padding:10px 16px; border-top:2px solid var(--bd); background:var(--sf2); display:flex; gap:8px; align-items:flex-end; }
.linp input,.linp select { background:var(--sf); border:1px solid var(--bd); border-radius:var(--r); padding:5px 9px; font-family:var(--fm); font-size:12px; color:var(--tx); }
.linp textarea { flex:1; background:var(--sf); border:1px solid var(--bd); border-radius:var(--r); padding:8px 12px; font-family:var(--fm); font-size:13px; resize:vertical !important; min-height:160px !important; height:180px; max-height:800px; color:var(--tx); line-height:1.6; }
.linp textarea:focus,.linp input:focus { outline:none; border-color:var(--pb1); }

/* ─── FILTER ─── */
.filter-bar { display:flex; flex-wrap:wrap; gap:7px; align-items:center; padding:9px 14px; background:var(--sf2); border-bottom:1px solid var(--bd); }
.filter-bar select,.filter-bar input { background:var(--sf); border:1px solid var(--bd); border-radius:var(--r); padding:4px 9px; font-family:var(--fm); font-size:12px; color:var(--tx); height:28px; }

/* ─── MODAL ─── */
.mov { display:none; position:fixed; inset:0; background:rgba(9,10,13,.45); z-index:1000; justify-content:center; align-items:center; backdrop-filter:blur(4px); }
.mov.open { display:flex; }
.mbox { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); padding:22px; width:480px; max-width:95vw; box-shadow:0 16px 48px rgba(9,10,13,.15); animation:mi .18s ease; max-height:90vh; overflow-y:auto; }
.mbox.lg { width:680px; }
.mbox.sm { width:340px; }
@keyframes mi { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.mtitle { font-size:15px; font-weight:700; margin-bottom:16px; }
.fr { display:flex; gap:10px; }
.fr .fg { flex:1; }
.fg { margin-bottom:11px; }
.fg label { display:block; font-size:10px; font-weight:700; color:var(--pg); letter-spacing:.07em; text-transform:uppercase; margin-bottom:4px; }
.fg input,.fg select,.fg textarea { width:100%; background:var(--sf2); border:1px solid var(--bd); border-radius:var(--r); padding:7px 10px; color:var(--tx); font-family:var(--fm); font-size:12px; transition:border-color .15s; }
.fg textarea { resize:vertical; min-height:80px; }
.fg input:focus,.fg select:focus,.fg textarea:focus { outline:none; border-color:var(--pb1); box-shadow:0 0 0 3px rgba(23,99,166,.1); }
.macts { display:flex; justify-content:flex-end; gap:7px; margin-top:14px; padding-top:12px; border-top:1px solid var(--bd); }

/* ─── MISC ─── */
.emp { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px; color:var(--ts); text-align:center; }
.emp .ei { font-size:28px; margin-bottom:10px; opacity:.7; }
.emp p { font-size:12px; line-height:1.6; }

/* ─── 연관 정보 바 ─── */
.linked-bar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:8px 12px; background:var(--sf2); border:1px solid var(--bd); border-radius:var(--r); margin-bottom:8px; font-size:11px; color:var(--td); }
.linked-bar .lb-title { font-weight:700; font-size:10px; color:var(--pg); letter-spacing:.05em; text-transform:uppercase; margin-right:4px; }
.lb-issue { background:rgba(185,28,28,.07); color:var(--rd); border:1px solid rgba(185,28,28,.15); padding:2px 7px; border-radius:3px; font-size:10px; font-weight:600; cursor:pointer; }
.lb-crs { background:rgba(23,99,166,.07); color:var(--pb1); border:1px solid rgba(23,99,166,.15); padding:2px 7px; border-radius:3px; font-size:10px; font-weight:600; cursor:pointer; }

/* ─── DCL highlight (calendar jump) ─── */
.dcl-row-hl { outline:2px solid rgba(23,99,166,.35); background:rgba(23,99,166,.06) !important; }

/* ─── GANTT ─── */
.gantt-wrap { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow:hidden; }
.gantt-inner { display:flex; }
.gantt-left { min-width:160px; width:160px; flex-shrink:0; border-right:1px solid var(--bd); }
.gantt-right { flex:1; overflow-x:auto; }
.gantt-label-col { padding:8px 12px; font-size:10px; font-weight:700; color:var(--pg); background:var(--pk); border-bottom:1px solid #2A3441; height:48px; box-sizing:border-box; display:flex; align-items:center; }
.gantt-dates { display:flex; background:var(--pk); }
.gantt-date-cell { flex-shrink:0; padding:8px 4px; text-align:center; font-size:9px; font-weight:600; color:var(--pg); border-right:1px solid #2A3441; text-transform:uppercase; height:48px; box-sizing:border-box; }
.gantt-labels { }
.gantt-label-row { display:flex; align-items:center; padding:9px 12px; border-bottom:1px solid var(--bd); height:40px; box-sizing:border-box; gap:6px; overflow:hidden; }
.gantt-hdr-row { padding:8px 12px; font-weight:700; }
.gantt-hdr-bar-row { border-bottom:1px solid var(--bd); }
.gantt-bars { position:relative; }
.gantt-row { display:flex; align-items:center; border-bottom:1px solid var(--bd); height:40px; box-sizing:border-box; position:relative; }
.gantt-cell { flex-shrink:0; border-right:1px solid var(--bd); height:40px; }
.gantt-cell.today-col { background:rgba(23,99,166,.04); }
.gantt-bar-wrap { position:absolute; height:34px; pointer-events:none; }
.gantt-bar { height:100%; border-radius:4px; position:relative; overflow:hidden; }
.gantt-bar-fill { position:absolute; left:0; top:0; height:100%; background:rgba(255,255,255,.2); }
.gantt-bar-lbl { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:white; padding:0 6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; letter-spacing:.5px; }
.gantt-today-line { position:absolute; top:0; bottom:0; width:2px; background:var(--rd); opacity:.7; z-index:5; }

/* ─── DROP ZONE ─── */
.drop-zone { border:2px dashed var(--bd2); border-radius:var(--rl); padding:28px; text-align:center; cursor:pointer; transition:all .2s; background:var(--sf2); margin-bottom:14px; }
.drop-zone:hover,.drop-zone.over { border-color:var(--pb1); background:rgba(23,99,166,.04); }
.drop-zone .di { font-size:28px; margin-bottom:8px; }
.drop-zone p { font-size:13px; font-weight:600; color:var(--td); }
.drop-zone small { font-size:11px; color:var(--ts); }

/* ─── TOAST ─── */
.toast { position:fixed; bottom:20px; right:20px; background:var(--pk); color:var(--pl); padding:10px 18px; border-radius:var(--r); font-size:12px; font-weight:600; z-index:9999; animation:slideIn .3s ease, fadeOut .3s ease 2.5s forwards; box-shadow:0 4px 16px rgba(0,0,0,.3); }
.toast-err { background:#B91C1C !important; }
@keyframes slideIn { from { transform:translateY(20px); opacity:0; } to { transform:none; opacity:1; } }
@keyframes fadeOut { to { opacity:0; transform:translateY(10px); } }

/* ─── DCL STATUS (Phase 2) ─── */
.wf-notstarted { background:rgba(107,114,128,.08); color:#6B7280; border:1px solid rgba(107,114,128,.25); }
.wf-overdue { background:rgba(185,28,28,.08); color:var(--rd); border:1px solid rgba(185,28,28,.25); animation:overdueGlow 2s infinite; }
.wf-internal { background:rgba(161,98,0,.08); color:var(--yl); border:1px solid rgba(161,98,0,.25); }
.wf-issued  { background:rgba(91,63,166,.08); color:var(--pu); border:1px solid rgba(91,63,166,.25); }
.wf-completed { background:rgba(26,127,60,.08); color:var(--gn); border:1px solid rgba(26,127,60,.25); }
.wf-onhold { background:rgba(161,98,0,.08); color:#B45309; border:1px solid rgba(161,98,0,.25); }
@keyframes overdueGlow { 0%,100% { box-shadow:0 0 0 transparent; } 50% { box-shadow:0 0 6px rgba(185,28,28,.25); } }

/* ─── WEEKLY REPORT ─── */
.wr-ctrl { display:flex; gap:10px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.wr-ctrl input[type=date] { background:var(--sf); border:1px solid var(--bd); border-radius:var(--r); padding:6px 10px; font-family:var(--fm2); font-size:12px; color:var(--tx); }
.wr-preview { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); padding:24px; }
.wr-header { text-align:center; margin-bottom:20px; }
.wr-header h2 { font-size:16px; font-weight:700; color:var(--tx); }
.wr-header .wr-period { font-family:var(--fm2); font-size:12px; color:var(--pb1); font-weight:600; margin-top:4px; }
.wr-header .wr-co { font-size:11px; color:var(--pg); margin-top:2px; }
.wr-header .wr-author { font-size:12px; color:var(--tx); font-weight:600; margin-top:6px; border-top:1px solid var(--bd); padding-top:6px; display:inline-block; }
.wr-docno { font-size:10px; color:var(--ts); font-weight:400; margin-left:8px; font-family:var(--fm2); }
.wr-proj { margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--bd); }
.wr-proj-hd { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.wr-proj-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.wr-proj-name { font-size:14px; font-weight:700; }
.wr-sect { margin-left:16px; margin-bottom:10px; }
.wr-sect-hd { font-size:12px; font-weight:700; color:var(--pb1); margin-bottom:5px; display:flex; align-items:center; gap:6px; }
.wr-sect-hd::before { content:''; width:4px; height:12px; background:var(--pb1); border-radius:2px; }
.wr-log { padding:4px 0 4px 14px; font-size:12px; color:var(--td); border-left:2px solid var(--bd); margin-bottom:3px; }
.wr-log-date { font-family:var(--fm2); font-size:10px; color:var(--pg); }
.wr-clickable { cursor:pointer; }
.wr-log.wr-clickable:hover { background:rgba(23,99,166,.06); border-left-color:var(--pb1); color:var(--pb1); border-radius:0 3px 3px 0; }
.wr-issue-row.wr-clickable:hover { background:rgba(23,99,166,.06); border-radius:3px; padding-left:4px; }
.wr-crs-summary { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:6px; margin-left:14px; }
.wr-crs-chip { padding:3px 9px; border-radius:4px; font-size:11px; font-weight:600; }
.wr-issue-row { display:flex; align-items:center; gap:6px; font-size:12px; margin:3px 0 3px 14px; }
.bpdf { background:rgba(185,28,28,.07); color:var(--rd); border:1px solid rgba(185,28,28,.25); }
.bpdf:hover { background:rgba(185,28,28,.14); }

/* ─── 프로젝트 공통사항 (Log) ─── */
.ldi-common { background:rgba(23,99,166,.04); border-left:3px solid var(--pb1); }
.ldi-common .lno { color:var(--pb1); font-weight:600; }

/* ─── DCL→업무일지 링크 ─── */
.dcl-log-link { font-size:11px; color:var(--pb1); cursor:pointer; text-decoration:underline; margin-left:4px; }
.dcl-log-link:hover { color:var(--pb2); }

/* ─── Rev. 이력 배지 ─── */
.rev-hist-badge {
  display:inline-flex; align-items:center; gap:4px; cursor:pointer;
  padding:2px 7px; border-radius:4px; font-size:12px; font-weight:700;
  font-family:var(--fm2); background:rgba(23,99,166,.08);
  color:var(--pb1); border:1px solid rgba(23,99,166,.2);
  transition:background .15s;
}
.rev-hist-badge:hover { background:rgba(23,99,166,.18); }
.rev-hist-badge.new { background:rgba(0,0,0,.04); color:var(--ts); border-color:var(--bd); font-weight:400; }
.rev-hist-badge .rev-cnt {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:16px; height:16px; padding:0 4px; border-radius:8px;
  background:var(--pb1); color:#fff; font-size:10px; font-weight:700;
}

/* ─── DCL 인라인 편집 ─── */
.il-cell { cursor:pointer; }
.il-cell:hover { background:rgba(23,99,166,.06); }
.il-sel {
  font-size:11px; padding:3px 5px; border:1px solid var(--pb1);
  border-radius:4px; background:var(--sf); color:var(--td);
  outline:none; min-width:110px;
}
/* 커스텀 인라인 드롭다운 (모바일 네이티브 피커 충돌 방지) */
.il-dd { position:fixed; z-index:9999; background:var(--sf); border:1px solid var(--bd2); border-radius:var(--r); box-shadow:0 4px 20px rgba(0,0,0,.18); overflow:hidden; min-width:160px; }
.il-dd-opt { display:block; width:100%; padding:10px 14px; border:none; background:transparent; color:var(--tx); font-family:var(--fm); font-size:13px; text-align:left; cursor:pointer; transition:background .1s; white-space:nowrap; }
.il-dd-opt:hover,.il-dd-opt:active { background:var(--sf2); }
.il-dd-opt.cur { color:var(--pb1); font-weight:600; background:var(--sf2); }
.il-inp {
  font-size:12px; padding:2px 6px; border:1px solid var(--pb1);
  border-radius:4px; background:var(--sf); color:var(--td);
  outline:none; width:58px; text-align:center; font-family:var(--fm2);
}

/* ─── WORK TIMELINE ─── */
.wt-ctrl { display:flex; gap:10px; align-items:center; margin-bottom:12px; }
.wt-grid-wrap { background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow:auto; max-height:calc(100vh - 180px); }
.wt-table { border-collapse:separate; border-spacing:0; width:max-content; min-width:100%; table-layout:fixed; }
.wt-table th, .wt-table td { border-right:1px solid var(--bd); border-bottom:1px solid var(--bd); padding:10px 12px; font-size:12px; vertical-align:top; }
.wt-table th { background:var(--sf2); position:sticky; top:0; z-index:10; font-weight:700; color:var(--pg); font-size:10px; text-transform:uppercase; text-align:center; height:44px; }
.wt-table th:first-child { position:sticky; left:0; z-index:20; background:var(--pk); color:var(--pl); width:220px; min-width:220px; }
.wt-table td:first-child { position:sticky; left:0; z-index:5; background:var(--sf2); font-weight:700; width:220px; min-width:220px; border-right:2px solid var(--bd); }
.wt-cell { min-width:160px; max-width:300px; cursor:pointer; }
.wt-cell:hover { background:rgba(23,99,166,.04); }
.wt-cell.is-today { background:rgba(23,99,166,.05); }
.wt-log-item { font-size:11px; color:var(--td); border-left:2px solid var(--pb1); padding-left:7px; margin-bottom:6px; line-height:1.4; word-break:break-all; }
.wt-date-sub { font-family:var(--fm2); font-size:9px; color:var(--ts); display:block; font-weight:400; margin-top:2px; }
.wt-sun { color:var(--rd) !important; }
.wt-sat { color:var(--pb1) !important; }

/* ─── CERT TAGS ─── */
.cert-tag { display:inline-flex;align-items:center;gap:4px;background:rgba(23,99,166,.12);color:var(--pb1);border:1px solid rgba(23,99,166,.3);border-radius:12px;padding:3px 10px;font-size:11px;font-weight:600; }
.cert-tag .cert-x { cursor:pointer;font-size:13px;line-height:1;color:var(--pg);margin-left:2px; }
.cert-tag .cert-x:hover { color:var(--rd); }

/* ─── MOBILE ─── */
.hamburger { display:none; flex-direction:column; gap:4px; cursor:pointer; padding:6px; background:none; border:none; }
.hamburger span { width:20px; height:2px; background:var(--pl); border-radius:2px; display:block; transition:all .2s; }
.sb-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:999; }

/* ─── TABLET (769px ~ 1024px) ─── */
@media (min-width:769px) and (max-width:1024px) {
  /* 사이드바: 모바일과 동일하게 오버레이 */
  .sb { position:fixed; left:-240px; top:0; height:100vh; z-index:1000; transition:left .25s; }
  .sb.open { left:0; }
  .sb-overlay.show { display:block; }
  .hamburger { display:flex; }

  body { overflow:auto; }
  html,body { height:auto; min-height:100%; }
  .main { height:100vh; }
  .cont { padding:14px 18px; }

  /* 탑바 */
  .topbar { padding:0 14px; gap:8px; }

  /* 테이블 가로 스크롤 */
  .tw { overflow-x:auto; }
  .tw table { width:max-content; min-width:100%; }

  /* 모달: 모바일보단 넓게 */
  .mbox,.mbox.lg,.mbox.sm { width:82vw !important; max-width:82vw !important; max-height:88vh; }

  /* 필터 바 */
  .filter-bar { flex-wrap:wrap; gap:6px; }
  .filter-bar select,.filter-bar input { flex:1; min-width:130px; }

  /* 대시보드 카드 */
  #dashSummaryCards { grid-template-columns:1fr 1fr !important; }
  #dashProjCards { grid-template-columns:1fr 1fr !important; }

  /* 업무일지 레이아웃: 세로 스택 */
  .llay { flex-direction:column; height:auto; }
  .lsd { width:100% !important; height:180px; flex-shrink:0; }
  .lmain { flex:1; min-height:300px; }
  .linp { flex-direction:column; align-items:stretch; gap:6px; }
  .linp textarea { min-height:80px !important; height:80px; }

  /* 업무일지 카드 수정/삭제 버튼: 터치 기기는 hover 없으므로 항상 표시 */
  .lent .lea { opacity:1; }

  /* 간트/타임라인 */
  .gantt-right { overflow-x:auto; }
  .wt-grid-wrap { overflow-x:auto; }
  .wt-ctrl { flex-wrap:wrap; gap:6px; }
  .wr-ctrl { flex-wrap:wrap; }

  /* 패널 헤더 버튼 줄바꿈 */
  .th { flex-wrap:wrap; row-gap:6px; }
  .th h3 { flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; align-self:center; }
  .tha { flex-wrap:wrap; gap:5px; }
  .tha select { flex:1 1 130px; min-width:0; }
}

@media (max-width:768px) {
  /* 사이드바: 슬라이드 오버레이 */
  .sb { position:fixed; left:-240px; top:0; height:100vh; z-index:1000; transition:left .25s; }
  .sb.open { left:0; }
  .sb-overlay.show { display:block; }
  .hamburger { display:flex; }

  /* 메인 레이아웃 */
  body { overflow:auto; }
  html,body { height:auto; min-height:100%; }
  .main { height:100vh; }
  .cont { padding:10px 8px; }

  /* ── 탑바: 제목과 액션버튼 겹침 방지 ── */
  .topbar { padding:0 8px; gap:4px; height:auto; min-height:50px; flex-wrap:nowrap; }
  .tbt { font-size:12px; flex:0 1 auto; min-width:0;
         white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
         max-width:35vw; }
  .tbt span { display:none; }
  #tba { flex:1; justify-content:flex-end; flex-wrap:wrap; gap:4px; min-width:0; }
  #tba .btn { font-size:11px; padding:5px 8px; min-height:34px; white-space:nowrap; }

  /* ── 패널 헤더(.th): 버튼 많을 때 아래로 줄바꿈 ── */
  .th { flex-wrap:wrap; row-gap:8px; padding:10px 12px; align-items:flex-start; }
  .th h3 { flex:1 1 auto; min-width:0; font-size:13px;
           white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
           align-self:center; }
  .tha { flex-wrap:wrap; gap:4px; width:100%; }
  .tha select { flex:1 1 120px; min-width:0; font-size:14px; }
  .tha .btn { font-size:11px; padding:5px 8px; min-height:34px; white-space:nowrap; }

  /* ── 업무일지 문서목록 헤더(.lmhd): 텍스트+검색+정렬버튼 ── */
  .lmhd { flex-wrap:wrap; row-gap:6px; padding:8px 10px; }
  .lmhd h3 { flex:1 1 100%; font-size:12px;
             white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  /* ── 테이블 가로 스크롤 ── */
  .tw { overflow-x:auto; }
  .tw table { width:max-content; min-width:100%; }

  /* ── 카드 그리드 ── */
  .sg { grid-template-columns:1fr 1fr; }
  #dashSummaryCards { grid-template-columns:1fr 1fr !important; }
  #dashProjCards { grid-template-columns:1fr !important; }

  /* ── 업무일지 레이아웃: 세로 스택 ── */
  .llay { flex-direction:column; height:auto; }
  .lsd { width:100% !important; height:160px; flex-shrink:0; }
  .lmain { flex:1; min-height:300px; }
  .lent .lea { opacity:1; }
  .lent { padding:12px 14px; }

  /* ── 업무일지 입력 영역 ── */
  .linp { flex-direction:column; align-items:stretch; gap:6px; padding:8px 10px; }
  .linp textarea { min-height:100px !important; height:100px; }
  .linp input,.linp select { font-size:13px; }

  /* ── CRS 필터 바: min-width 인라인 스타일 무력화 ── */
  #pnl-crs > div:first-child { flex-direction:column; gap:6px; align-items:stretch; }
  #crsProjSel, #crsDclSel { min-width:0 !important; width:100%; box-sizing:border-box; }
  #crsKw { width:100% !important; box-sizing:border-box; }

  /* ── iOS auto-zoom 방지 (input/select/textarea ≥ 16px) ── */
  input, select, textarea { font-size:16px !important; }

  /* ── 필터 바 ── */
  .filter-bar { flex-wrap:wrap; gap:5px; }
  .filter-bar select,.filter-bar input { flex:1 1 110px; min-width:0; }

  /* ── 모달 ── */
  .mbox,.mbox.lg,.mbox.sm { width:96vw !important; max-width:96vw !important; padding:16px; max-height:88vh; }
  .fr { flex-direction:column; gap:0; }

  /* ── 캘린더 ── */
  .cc { min-height:46px; padding:2px; }
  .cev { font-size:8px; padding:1px 2px; }
  .cwd { padding:5px 2px; font-size:9px; }

  /* ── 버튼 터치 영역 ── */
  .btn { min-height:36px; }
  .macts { flex-wrap:wrap; }

  /* ── 공지 카드 ── */
  .notice-card-inner { flex-direction:column !important; }
  .notice-card-meta  { align-items:flex-start !important; }

  /* ── 간트 / 타임라인 ── */
  .gantt-right { overflow-x:auto; }
  .wt-grid-wrap { overflow-x:auto; max-height:none; }
  .wt-ctrl { flex-wrap:wrap; gap:6px; }
  .wt-ctrl h3 { display:none; }
  .wt-table th:first-child,
  .wt-table td:first-child { width:80px !important; min-width:80px !important; }
  .wt-table th:first-child { font-size:9px; padding:6px 4px; }
  .wt-table td:first-child { padding:6px 4px; font-size:11px; word-break:keep-all; white-space:normal; }
  .wt-cell { min-width:90px; }
  .wr-ctrl { flex-wrap:wrap; }
  .wr-preview { padding:14px 10px; }

  /* ── 설정 페이지 ── */
  .tw > div > div[style*="flex"] { flex-wrap:wrap; }
}

/* ─── PRINT ─── */
@media print {
  body { display:block !important; overflow:visible !important; background:white !important; color:#000 !important; }
  /* 숨길 UI 요소 */
  .sb, .topbar, .wr-ctrl, .linp, .btn, .toast, .drop-zone, .pf-header,
  .lsd, .lmhd, #logBulkBar, #logKw, #sortN, #sortO,
  .lea, .log-side, .filter-bar, .tha, .th select, .dcl-filter,
  .wt-ctrl, .crs-ctrl, #tba, #ganttLbl, #srchWrap,
  [id^="resp-form-"], .gantt-wrap { display:none !important; }
  /* 레이아웃 */
  .main { display:block !important; overflow:visible !important; }
  .cont { padding:0 !important; overflow:visible !important; border:none !important; }
  .llay { display:block !important; }
  .lmain { width:100% !important; }
  /* 활성 패널만 출력 */
  .pnl { display:none !important; }
  .pnl.active { display:block !important; overflow:visible !important; }
  /* 인쇄 헤더 */
  #print-hdr { display:flex !important; justify-content:space-between; align-items:center;
    border-bottom:2px solid #1763A6; padding-bottom:8px; margin-bottom:16px; }
  #print-hdr .ph-title { font-size:16px; font-weight:700; color:#1763A6; }
  #print-hdr .ph-meta { font-size:11px; color:#555; text-align:right; }
  /* 카드/로그 */
  .lent { break-inside:avoid; page-break-inside:avoid; border:1px solid #ddd !important; margin-bottom:8px !important; border-radius:4px !important; }
  .led { color:#000 !important; }
  .leb { color:#000 !important; }
  /* DCL 테이블 */
  .tw { overflow:visible !important; }
  table { border-collapse:collapse !important; width:100% !important; font-size:11px !important; }
  th, td { border:1px solid #ccc !important; padding:4px 8px !important; color:#000 !important; }
  th { background:#1763A6 !important; color:white !important; -webkit-print-color-adjust:exact; }
  tr:nth-child(even) td { background:#f9f9f9 !important; }
  /* 주간업무일지 */
  .wr-preview { border:none !important; box-shadow:none !important; padding:0 !important; }
  .wr-header h2 { font-size:18px; }
  .wr-proj { page-break-inside:avoid; }
  /* 타임라인 */
  .wt-table { font-size:10px !important; }
  .wt-cell { min-width:80px !important; max-width:none !important; }

  /* 내 정보/이력 인쇄 스타일 */
  #careerYearSel { display:none !important; }
  #pnl-profile input, #pnl-profile textarea { background:transparent !important; box-shadow:none !important; resize:none !important; color:#000 !important; }

  /* 기본사항 박스 */
  #pnl-profile .sc {
    border:1.5px solid #1763A6 !important;
    border-radius:4px !important;
    padding:12px 16px !important;
    margin-bottom:16px !important;
    background:white !important;
  }
  #pnl-profile .sc::before {
    content:'기본사항';
    display:block;
    font-size:13px;
    font-weight:700;
    color:#1763A6;
    border-bottom:1px solid #1763A6;
    padding-bottom:6px;
    margin-bottom:10px;
  }
  /* 기본사항 개별 항목 칸 구분 */
  #pnl-profile .fg {
    border:1px solid #CBD5E1 !important;
    border-radius:3px !important;
    padding:6px 10px !important;
    background:#FAFAFA !important;
  }
  #pnl-profile .fg label {
    font-size:9px !important;
    color:#6B7280 !important;
    display:block !important;
    margin-bottom:3px !important;
    font-weight:600 !important;
  }
  #pnl-profile .fg input, #pnl-profile .fg textarea {
    border:none !important;
    padding:0 !important;
    font-size:12px !important;
    font-weight:700 !important;
    width:100% !important;
  }
  /* 업무 수행 이력 섹션 제목 */
  #pnl-profile > div:nth-child(3) h4 {
    font-size:13px !important;
    font-weight:700 !important;
    color:#1763A6 !important;
    border-bottom:2px solid #1763A6 !important;
    padding-bottom:4px !important;
    margin-bottom:8px !important;
  }
  /* 업무 수행 이력 표 */
  #careerListWrap {
    border:1.5px solid #1763A6 !important;
    border-radius:4px !important;
    overflow:visible !important;
  }
  #careerListWrap table {
    border-collapse:collapse !important;
    width:100% !important;
    font-size:10px !important;
  }
  #careerListWrap th {
    border:1px solid #1763A6 !important;
    background:#1763A6 !important;
    color:white !important;
    padding:5px 8px !important;
    text-align:center !important;
  }
  #careerListWrap td {
    border:1px solid #CBD5E1 !important;
    padding:4px 8px !important;
    vertical-align:middle !important;
  }
  #careerListWrap tr:nth-child(even) td { background:#F8FAFC !important; }
}

/* ── 로그인 오버레이 ─────────────────────────────────── */
#loginOverlay { position:fixed; inset:0; background:var(--lov-bg); z-index:9999; align-items:center; justify-content:center; }
.login-card { background:var(--lov-card); border:1px solid var(--bd); border-radius:12px; padding:40px 36px; width:340px; max-width:92vw; }
.login-label { font-size:12px; color:var(--ts); display:block; margin-bottom:5px; }
.login-inp { width:100%; background:var(--sf2); border:1px solid var(--bd); border-radius:6px; padding:9px 12px; color:var(--tx); font-size:14px; outline:none; font-family:var(--fm); }
.login-inp:focus { border-color:var(--pb1); }

/* ── 알림 패널 ───────────────────────────────────────── */
.notif-panel { position:absolute; top:36px; right:0; width:360px; background:var(--sf); border:1px solid var(--bd); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.3); z-index:500; max-height:480px; flex-direction:column; }
.notif-panel-hd { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-bottom:1px solid var(--bd); }
.notif-panel-hd span { font-size:13px; font-weight:700; color:var(--tx); }
.notif-panel-hd button { font-size:11px; color:var(--ts); background:none; border:none; cursor:pointer; }

/* ── 통합검색 ──────────────────────────────────────── */
.srch-section-hd { font-size:11px; font-weight:700; color:var(--ts); text-transform:uppercase; letter-spacing:.04em; padding:8px 6px 4px; border-bottom:1px solid var(--bd); margin-bottom:2px; }
.srch-item { padding:7px 8px; border-radius:6px; cursor:pointer; transition:background .12s; }
.srch-item:hover { background:var(--bg2); }
.srch-item-main { font-size:12px; color:var(--tx); line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.srch-item-sub { font-size:11px; color:var(--ts); margin-top:2px; }

/* ── 테마 토글 버튼 ──────────────────────────────────── */
#themeToggleBtn { background:none; border:1px solid var(--bd); border-radius:var(--r); padding:4px 8px; cursor:pointer; font-size:14px; color:var(--td); transition:all .2s; }
#themeToggleBtn:hover { border-color:var(--pb1); color:var(--pb1); }

/* ── 토글 스위치 ─────────────────────────────────────── */
.toggle-sw { display:inline-flex; align-items:center; cursor:pointer; }
.toggle-sw input { display:none; }
.toggle-track {
  width:40px; height:22px; background:var(--bd); border-radius:11px;
  position:relative; transition:background .2s;
}
.toggle-track::after {
  content:''; position:absolute; top:3px; left:3px;
  width:16px; height:16px; border-radius:50%; background:#fff;
  transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.toggle-sw input:checked ~ .toggle-track { background:var(--pb1); }
.toggle-sw input:checked ~ .toggle-track::after { transform:translateX(18px); }

/* ── 알림 뱃지 ───────────────────────────────────────── */
.notif-badge {
  display:inline-block; font-size:11px; font-weight:700;
  padding:2px 8px; border-radius:10px;
}
.notif-badge.overdue { background:rgba(248,81,73,.15); color:#F85149; }
.notif-badge.soon    { background:rgba(245,158,11,.15); color:#F59E0B; }

/* ── DCL 마감일 경고 행 ──────────────────────────────── */
tr.dcl-overdue td { background:rgba(248,81,73,.06) !important; }
tr.dcl-due-soon td { background:rgba(245,158,11,.06) !important; }
.deadline-overdue { color:#F85149; font-weight:700; }
.deadline-soon    { color:#F59E0B; font-weight:700; }

/* ── CRS Sheet 카드 ──────────────────────────────────── */
.crs-sheet-card {
  border:1px solid var(--bd); border-radius:var(--r);
  margin-bottom:10px; overflow:hidden;
}
.crs-sheet-hd {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:10px 14px; cursor:pointer;
  background:var(--sf2); transition:background .15s;
}
.crs-sheet-hd:hover { background:var(--sf3,var(--sf2)); filter:brightness(.96); }
.crs-sheet-body { border-top:1px solid var(--bd); }

/* ── 회의록 @ 업무일지 연동 ─────────────────────────── */
#meet_content[contenteditable] {
  width:100%; min-height:120px; box-sizing:border-box;
  background:var(--sf2); border:1px solid var(--bd);
  border-radius:var(--r); padding:8px 10px;
  color:var(--tx); font-family:var(--fm); font-size:13px;
  line-height:1.6; overflow-y:auto; outline:none; cursor:text;
  word-break:break-word;
}
#meet_content[contenteditable]:focus { border-color:var(--pb1); }
#meet_content[contenteditable]:empty::before {
  content:attr(data-placeholder); color:var(--ts); pointer-events:none;
}
.meet-log-tag {
  display:inline-block; background:var(--pb1,#1763A6);
  color:#fff; border-radius:4px; padding:1px 7px;
  font-size:11px; font-weight:600; margin-right:2px;
  user-select:none; vertical-align:middle; cursor:default;
}
.meet-log-tag.synced { background:#28a745; }
.meet-log-tag.synced::after { content:' ✓'; }
.mention-item {
  padding:7px 12px; cursor:pointer; font-size:12px;
  display:flex; align-items:baseline; gap:6px;
  border-bottom:1px solid var(--bd);
}
.mention-item:last-child { border-bottom:none; }
.mention-item:hover, .mention-item.active { background:var(--sf2); }
.mention-item .mi-no { font-weight:700; color:var(--pb1); flex-shrink:0; }
.mention-item .mi-title { color:var(--ts); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
