/* 칸반 보드 */
[data-app="kanban-board"]{ display:flex; flex-direction:column; gap:8px; }
[data-app="kanban-board"] .kb-head{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; }
[data-app="kanban-board"] .kb-sum{ margin:0; font-size:13.5px; color:#4B5059; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
[data-app="kanban-board"] .kb-sum b{ font-size:15px; font-weight:800; color:#1A1A1A; }
[data-app="kanban-board"] .kb-bar{ flex:1 1 140px; min-width:0; height:8px; border-radius:4px; background:#ECEEF2; overflow:hidden; }
[data-app="kanban-board"] .kb-fill{ height:100%; width:0; border-radius:4px; background:#16A34A; transition:width .3s; }
[data-app="kanban-board"] .kb-add{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
[data-app="kanban-board"] .kb-in{ min-height:40px; }
/* 여러 줄 붙여 넣기 물음 · 저장 못 함 안내 */
[data-app="kanban-board"] .kb-paste{ display:flex; flex-direction:column; gap:4px; padding:10px; border:1.5px solid #C9D6F2; border-radius:12px; background:#F7FAFF; }
[data-app="kanban-board"] .kb-pq{ margin:0; font-size:13.5px; font-weight:800; color:#1A1A1A; overflow-wrap:anywhere; }
[data-app="kanban-board"] .kb-pv{ margin:0; overflow-wrap:anywhere; }
[data-app="kanban-board"] .kb-paste .ndt-row{ margin-top:4px; }
[data-app="kanban-board"] .kb-warn{ margin:0; padding:6px 10px; border-radius:8px; background:#FDECEC; color:#9F1C1C; font-size:12.5px; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
[data-app="kanban-board"] .kb-msg{ margin:-2px 0 -2px; min-height:1.5em; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:12.5px; font-weight:700; color:#0D7A43; }
[data-app="kanban-board"] .kb-board{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; align-items:start; }
[data-app="kanban-board"] .kb-col{ min-width:0; padding:8px; border:2px solid transparent; border-radius:12px; background:#F3F4F6; transition:background .15s, border-color .15s; }
[data-app="kanban-board"] .kb-col.kb-over{ border-color:#93B4F5; background:#EAF1FE; }
[data-app="kanban-board"] .kb-col:focus{ outline:none; }
[data-app="kanban-board"] .kb-col:focus-visible{ border-color:#93B4F5; }
[data-app="kanban-board"] .kb-ch{ display:flex; align-items:center; justify-content:space-between; gap:6px; margin:0 0 8px; padding:2px 4px; font-size:14px; font-weight:800; line-height:1.4; color:#1A1A1A; }
[data-app="kanban-board"] .kb-cn::before{ content:''; display:inline-block; width:9px; height:9px; margin-right:6px; border-radius:50%; background:#9AA1AC; vertical-align:1px; }
[data-app="kanban-board"] .kb-col[data-c="1"] .kb-cn::before{ background:#2563EB; }
[data-app="kanban-board"] .kb-col[data-c="2"] .kb-cn::before{ background:#16A34A; }
[data-app="kanban-board"] .kb-n{ min-width:26px; padding:0 8px; border:1px solid #E3E5E9; border-radius:999px; background:#fff; font-size:12.5px; font-weight:800; text-align:center; color:#4B5059; font-variant-numeric:tabular-nums; }
[data-app="kanban-board"] .kb-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
[data-app="kanban-board"] .kb-card{ min-width:0; padding:6px 8px 8px; border:1px solid #E3E5E9; border-radius:10px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.04); }
[data-app="kanban-board"] .kb-card.kb-dragging{ opacity:.45; }
[data-app="kanban-board"] .kb-card.kb-flash{ animation:kbFlash 1.2s ease-out; }
@keyframes kbFlash{ 0%{ background:#FFF3C4; border-color:#F2C94C; } 100%{ background:#fff; border-color:#E3E5E9; } }
[data-app="kanban-board"] .kb-txt{ display:block; width:100%; min-height:32px; margin:0; padding:4px 2px; border:0; border-radius:6px; background:transparent; color:#1A1A1A; font-size:14px; font-weight:600; line-height:1.45; text-align:left; white-space:normal; word-break:keep-all; overflow-wrap:anywhere; cursor:text; }
@media (hover:hover){ [data-app="kanban-board"] .kb-txt:hover{ background:#F5F7FA; } }   /* 폰은 누른 뒤 회색이 남지 않게 */
[data-app="kanban-board"] .kb-col[data-c="2"] .kb-txt{ color:#5B6470; }
[data-app="kanban-board"] .kb-ed{ margin:2px 0; }
[data-app="kanban-board"] textarea.ndt-in.kb-ed{ display:block; min-height:40px; resize:none; overflow:hidden; line-height:1.45; font-weight:600; }
[data-app="kanban-board"] .kb-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 6px; margin-top:4px; }
[data-app="kanban-board"] .kb-meta{ font-size:12px; color:#6B717B; white-space:nowrap; }
[data-app="kanban-board"] .kb-act{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px; margin-left:auto; min-width:0; }
[data-app="kanban-board"] .kb-act .ndt-btn.sm{ padding:0 8px; font-size:12.5px; }
[data-app="kanban-board"] .kb-act .kb-r{ border-color:#BFD0F5; color:#1D4ED8; }
[data-app="kanban-board"] .kb-act .ndt-btn.ndt-arm{ color:#fff; }
/* ✕ 는 누르기 쉽게 폭 32px 이상 · 한 번 누르면 ✕ 자리에서 왼쪽으로 빨간 확인 글이 펼쳐짐
   (공통 런타임이 확인 중 단추 폭을 고정해 작은 ✕ 안에서는 글이 잘림 → 글은 말풍선으로. 말풍선도 단추의 일부라 그 위를 다시 누르면 지워지고,
    옆의 「옮기기」 단추를 덮어 두 번째 누름이 다른 단추에 가지 않음) */
[data-app="kanban-board"] .kb-act .kb-del{ position:relative; min-width:32px; }
[data-app="kanban-board"] .kb-act .kb-del.ndt-arm{ overflow:visible; font-size:0; white-space:nowrap; }
[data-app="kanban-board"] .kb-act .kb-del.ndt-arm::after{ content:attr(data-arm); position:absolute; top:-1px; right:-1px; bottom:-1px; z-index:2; display:flex; align-items:center; padding:0 12px; border-radius:8px; background:#B42318; color:#fff; font-size:12.5px; font-weight:800; line-height:1; white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.22); }
[data-app="kanban-board"] .kb-act .kb-del.ndt-arm:focus-visible{ outline:none; }
[data-app="kanban-board"] .kb-act .kb-del.ndt-arm:focus-visible::after{ outline:3px solid #93B4F5; outline-offset:2px; }
[data-app="kanban-board"] .kb-empty{ margin:0; padding:12px 8px; border:1.5px dashed #D3D6DC; border-radius:10px; text-align:center; font-size:12.5px; color:#5F6570; }
[data-app="kanban-board"] .kb-tail{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding-top:8px; border-top:1px solid #EEF0F3; }
[data-app="kanban-board"] .kb-tail .ndt-muted{ flex:1 1 220px; min-width:0; }
@media (hover:hover) and (pointer:fine){ [data-app="kanban-board"] .kb-card[draggable="true"]{ cursor:grab; } }
@media (hover:none), (pointer:coarse){ [data-app="kanban-board"] .kb-kbd{ display:none; } }   /* 키보드 안내는 컴퓨터에서만 */
@media (max-width:820px){ [data-app="kanban-board"] .kb-board{ grid-template-columns:minmax(0,1fr); } }
/* 인쇄(Ctrl·⌘+P): 보드만 세 칸으로 — 입력 칸·단추·안내는 빼고, 카드가 쪽 사이에서 잘리지 않게 */
@media print{
  [data-app="kanban-board"] .kb-add, [data-app="kanban-board"] .kb-paste, [data-app="kanban-board"] .kb-msg, [data-app="kanban-board"] .kb-act, [data-app="kanban-board"] .kb-tail{ display:none !important; }
  [data-app="kanban-board"] .kb-board{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  [data-app="kanban-board"] .kb-col{ border:1px solid #C9CDD4; }
  [data-app="kanban-board"] .kb-card{ break-inside:avoid; box-shadow:none; animation:none !important; }
  [data-app="kanban-board"] *{ outline:none !important; }
  [data-app="kanban-board"] .kb-bar, [data-app="kanban-board"] .kb-fill, [data-app="kanban-board"] .kb-cn::before{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
