/* ══════════════════════════════════════════════════════════
   CPL 로그 추가 '새 화면 미리보기' (.lap-) — 디자인 기준 B안(무채색 + 상태색) 시범 적용.
   B 값은 .lap 안에서만 덮는다(같은 토큰 이름) — 다른 페이지·모달은 지금 모습 그대로.
   규칙: 화면은 회색조, 색은 상태(지연·주의·정상)에만. 주 버튼 = 검정. 단계 = 회색 + n/8.
   버튼 크기 = Mobbin 실측 근거(2026-10-23, https://claude.ai/artifact/EqqbHSRktn2MuFamR3petS):
     보통 32px·13px(Basecamp 33) / 작게 28px·12px(Asana 28) / 아이콘 28px 정사각 / 모서리 6px.
   보기 A(묶음형 + 타임라인형) · 보기 B(숫자 칸형 + 표형) 둘 다 둔다 — 담당자 의견 수렴 중.
   ══════════════════════════════════════════════════════════ */
#page-pl-log-add.lap-on{background:#fafafa;}
.lap{
  --bg:#fafafa;--surface:#ffffff;--surface2:#f4f4f5;--border:#e4e4e7;--border2:#c4c4ca;
  --text:#18181b;--text2:#52525b;--text3:#8e8e96;
  --accent:#0e7490;--accent-light:#e6f4f7;
  --primary:#18181b;--primary-fg:#ffffff;
  --red:#dc2626;--red-light:#fde8e8;--green:#15803d;--green-light:#e3f6e9;--amber:#b45309;--amber-light:#fcf1dc;
  --radius:8px;--radius-sm:6px;
  --fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:16px;--fs-2xl:20px;
  --row:44px;--chip-h:22px;--btn:32px;--btn-sm:28px;
  background:var(--bg);color:var(--text);font-size:var(--fs-md);line-height:1.55;
  padding:16px;display:flex;flex-direction:column;gap:16px;min-height:100%;
}
.lap button{font-family:inherit;}
.lap button:focus-visible,.lap input:focus-visible,.lap select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.lap-num{font-variant-numeric:tabular-nums;}
.lap-muted{color:var(--text3);font-size:var(--fs-sm);}
.lap-hint{font-size:var(--fs-xs);color:var(--text3);}
.lap-over{color:var(--red);font-weight:500;}
.lap-grow{flex:1;}
.lap-pad{padding:8px 16px 12px;}

/* 머리 */
.lap-ph{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;}
.lap-ph h3{font-size:var(--fs-2xl);font-weight:700;margin:0;}
.lap-badge{font-size:var(--fs-xs);color:var(--text2);background:var(--surface2);border:1px dashed var(--border2);border-radius:999px;padding:2px 10px;}
.lap-input{font-family:inherit;font-size:var(--fs-md);height:var(--btn);width:220px;max-width:100%;border:1px solid var(--border2);border-radius:var(--radius-sm);padding:0 10px;background:var(--surface);color:var(--text);}
.lap-input-sm{height:var(--btn-sm);font-size:var(--fs-sm);width:auto;padding:0 8px;}
.lap-date{width:140px;font-variant-numeric:tabular-nums;}
.lap-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);}

/* 버튼 — 보통 32 / 작게 28 / 아이콘 28 */
.lap-btn{font-size:var(--fs-md);font-weight:500;height:var(--btn);padding:0 12px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;}
.lap-btn-pri{background:var(--primary);color:var(--primary-fg);}
.lap-btn-pri:hover{background:#3f3f46;}
.lap-btn-sec{background:var(--surface);color:var(--text);border-color:var(--border2);}
.lap-btn-ghost{background:transparent;color:var(--text2);}
.lap-btn-sec:hover,.lap-btn-ghost:hover{background:var(--surface2);}
.lap-btn-sm{height:var(--btn-sm);padding:0 10px;font-size:var(--fs-sm);}
.lap-push{margin-left:auto;}
.lap-link{all:unset;cursor:pointer;color:var(--text2);font-weight:500;}
.lap-link:hover{color:var(--text);text-decoration:underline;}
.lap-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* 칩 */
.lap-st{display:inline-flex;align-items:center;gap:5px;height:var(--chip-h);padding:0 8px;border-radius:999px;font-size:var(--fs-sm);font-weight:500;white-space:nowrap;}
.lap-st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.lap-st-late{color:var(--red);background:var(--red-light);}
.lap-st-warn{color:var(--amber);background:var(--amber-light);}
.lap-st-ok{color:var(--green);background:var(--green-light);}
.lap-st-hold{color:var(--text2);background:var(--surface2);}
.lap-stg{display:inline-flex;align-items:center;gap:6px;height:var(--chip-h);padding:0 8px;border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;}
.lap-stg b{font-weight:500;color:var(--text3);font-variant-numeric:tabular-nums;}
.lap-stg.stop{color:var(--text3);}
.lap-cat{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border:1px solid var(--border);border-radius:999px;font-size:var(--fs-xs);color:var(--text2);white-space:nowrap;}
.lap-cat i{width:7px;height:7px;border-radius:2px;flex:none;}
.lap-cert{display:inline-flex;margin:0 4px 4px 0;padding:1px 8px;border-radius:999px;font-size:var(--fs-sm);background:var(--surface2);color:var(--text2);}
.lap-cert-late{background:var(--red-light);color:var(--red);}
.lap-cert-ing{background:var(--surface2);color:var(--text);font-weight:500;}
.lap-cert-done{color:var(--green);background:var(--green-light);}
.lap-tag-next{font-size:10.5px;font-weight:500;color:var(--text3);border:1px dashed var(--border2);border-radius:999px;padding:0 6px;margin-left:6px;}

/* 세그먼트 — 작은 버튼과 같은 28px */
.lap-seg{display:inline-flex;border:1px solid var(--border2);border-radius:var(--radius-sm);overflow:hidden;}
.lap-seg button{all:unset;cursor:pointer;font-size:var(--fs-sm);height:calc(var(--btn-sm) - 2px);padding:0 10px;display:inline-flex;align-items:center;color:var(--text2);border-right:1px solid var(--border);}
.lap-seg button:last-child{border-right:0;}
.lap-seg button[aria-pressed="true"]{background:var(--primary);color:var(--primary-fg);}

/* 오늘 챙길 것 — 공통 */
.lap-today{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;}
.lap-today-hd{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px;}
.lap-today-hd strong{font-size:var(--fs-lg);}
.lap-trow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;min-height:var(--row);padding:6px 16px;border-top:1px solid var(--border);cursor:pointer;}
.lap-trow:hover{background:#fbfbfc;}
.lap-trow.sel{background:var(--surface2);box-shadow:inset 2px 0 0 var(--text);}
.lap-trow-txt{display:flex;flex-direction:column;min-width:0;}
.lap-today-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-today-why{color:var(--text3);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-today-why.r{color:var(--red);}
/* B 숫자 칸형 */
.lap-tiles{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:8px;padding:0 16px 12px;}
/* 좁아도 가로 3칸 유지(세로로 쌓으면 목록이 화면 밖으로 밀림) — 설명 글만 숨김 */
@media (max-width:720px){.lap-tile{padding:8px 10px;}.lap-tile .lap-hint{display:none;}.lap-tile-n{font-size:18px;}}
.lap-tile{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
.lap-tile:hover{background:#fbfbfc;}
.lap-tile[aria-pressed="true"]{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text);}
.lap-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.lap-tile-n{font-size:22px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;}
.lap-tlist{border-top:1px solid var(--border);}
.lap-tlist .lap-trow:first-child{border-top:0;}

/* 본문 2단 */
.lap-main{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start;}
/* 좁으면 1단 — 상태 카드를 로그 목록 위로(아래 두면 로그 200건 밑에 묻힘) */
@media (max-width:1100px){.lap-main{grid-template-columns:minmax(0,1fr);}#lap-card-wrap{order:-1;position:static;}}
.lap-logs-col{display:flex;flex-direction:column;gap:8px;min-width:0;}

/* 로그 필터 줄 */
.lap-lbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.lap-lbar strong{font-size:var(--fs-lg);margin-right:4px;}
.lap-lbar .lap-q{width:200px;}
.lap-logs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-width:0;}
.lap-empty{padding:28px 16px;color:var(--text3);text-align:center;font-size:var(--fs-md);}


/* 로그 B 표형 — 1건 = 44px 한 줄 */
.lap-ltbl-wrap{overflow-x:auto;}
/* table-layout:fixed — 칸 폭을 고정해야 긴 제목이 말줄임으로 잘린다(auto 면 표가 1,000px 넘게 늘어나 로그 칸에서 가로 스크롤) */
/* 품목 칸 260px = 실데이터 200건 실측에서 3줄 넘는 이름이 1건뿐인 폭(200px 면 49건이 3줄).
   min-width 736 = 넓은 화면(1400px) 로그 칸 안쪽 약 743px 에 가로 스크롤 없이 들어가는 폭(제목 칸 최소 192) */
.lap-ltbl{border-collapse:collapse;width:100%;min-width:736px;table-layout:fixed;font-variant-numeric:tabular-nums;}
.lap-ltbl th:nth-child(1){width:52px;} .lap-ltbl th:nth-child(2){width:280px;} .lap-ltbl th:nth-child(4){width:88px;}
.lap-ltbl th:nth-child(5){width:64px;} .lap-ltbl th:nth-child(6){width:80px;}   /* 6번째 칸 = 진행서·그룹 로그 표(로그 추가 표는 5칸 — 2026-10-26 오른쪽 칸 삭제) */
.lap-ltbl th{font-size:var(--fs-xs);color:var(--text3);font-weight:500;text-align:left;height:32px;padding:0 10px;border-bottom:1px solid var(--border);white-space:nowrap;}
.lap-ltbl td{height:var(--row);padding:0 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
.lap-ltbl tr:last-child td{border-bottom:0;}
.lap-ltbl-day td{height:30px;background:var(--surface2);font-size:var(--fs-sm);font-weight:700;color:var(--text2);}
.lap-ltbl-row{cursor:pointer;}
.lap-ltbl-row:hover td{background:#fbfbfc;}
.lap-ltbl-row.sel td{background:var(--surface2);}
.lap-ltbl-t{color:var(--text3);font-size:var(--fs-sm);white-space:nowrap;width:52px;}
/* 품목명은 잘리지 않게 줄바꿈(대부분 2줄, 아주 긴 이름은 3줄) — 사용자 피드백 2026-10-23. 행은 그만큼 늘어남 */
.lap-ltbl-p{white-space:normal;padding-top:6px !important;padding-bottom:6px !important;}
.lap-ltbl-p .lap-link{display:block;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;line-height:1.4;font-weight:500;color:var(--text);}
/* 품목 사진 — 기존 로그 추가 화면(cp-lr-thumb)처럼 줄마다. 표형은 이름 옆 28px(칸 260→280, 이름 폭 유지) */
.lap-ltbl-pin{display:flex;align-items:center;gap:8px;min-width:0;}
.lap-ltbl-pin .lap-link{flex:1 1 auto;min-width:0;}
.lap-ltbl-ttl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-ltbl-ttl b{font-weight:500;}
.lap-ltbl-cat{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lap-ltbl-who,.lap-ltbl-side{overflow:hidden;text-overflow:ellipsis;}
.lap-ltbl-cat .lap-cat+.lap-cat{margin-left:4px;}
.lap-ltbl-who{white-space:nowrap;color:var(--text2);font-size:var(--fs-sm);}
.lap-ltbl-side{white-space:nowrap;color:var(--text3);font-size:var(--fs-sm);text-align:right;}

/* 상태 카드 */
#lap-card-wrap{position:sticky;top:12px;}
.lap-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;}
.lap-card-hd{padding:16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.lap-card-hd strong{font-size:var(--fs-xl);line-height:1.35;}
.lap-card-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.lap-why{font-size:var(--fs-sm);color:var(--text2);}
.lap-props{margin:0;padding:12px 16px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border);}
.lap-prop{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start;}
.lap-prop dt{font-size:var(--fs-sm);color:var(--text3);padding-top:2px;}
.lap-prop dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.lap-slot{padding:10px 16px;border-bottom:1px solid var(--border);}
.lap-slot-hd{font-size:var(--fs-sm);font-weight:700;color:var(--text2);margin-bottom:6px;display:flex;align-items:center;min-height:var(--btn-sm);}
.lap-slot-body{font-size:var(--fs-sm);color:var(--text3);border:1px dashed var(--border2);border-radius:var(--radius-sm);padding:8px 10px;}
.lap-recent{padding:10px 16px 14px;display:flex;flex-direction:column;gap:2px;}
.lap-recent-row{all:unset;cursor:pointer;display:grid;grid-template-columns:40px 1fr;gap:8px;font-size:var(--fs-sm);padding:4px 6px;border-radius:var(--radius-sm);}
.lap-recent-row:hover{background:var(--surface2);}
.lap-recent-row span:first-child{color:var(--text3);}

/* ── 상태 저장(sql/295) — 누구 차례·확정 사항·열린 이슈 ── */
.lap-scope{margin:10px 16px 0;font-size:var(--fs-xs);color:var(--text2);background:var(--surface2);border-radius:var(--radius-sm);padding:4px 8px;}
.lap-cnt{font-weight:500;color:var(--text3);margin-left:4px;font-variant-numeric:tabular-nums;}
.lap-seg-wrap{flex-wrap:wrap;}
.lap-fact{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto auto;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--border);}
.lap-fact:last-of-type{border-bottom:0;}
.lap-fact-item{font-size:var(--fs-sm);color:var(--text3);}
.lap-fact-val{min-width:0;word-break:break-word;}
.lap-fact-val small{display:block;font-size:var(--fs-xs);color:var(--text3);}
/* 같은 항목의 예전 확정 — 한 줄씩 따로, 흐리게(2026-10-27) */
.lap-fact.is-old .lap-fact-val{color:var(--text3);font-size:var(--fs-sm);}
.lap-fact-oldtag{font-size:var(--fs-xs);color:var(--text3);background:var(--surface2);border-radius:4px;padding:0 6px;}
/* 아이콘 버튼 ✕·↩ — 28px 정사각(누르기 쉬운 크기) */
.lap-x{all:unset;cursor:pointer;color:var(--text3);font-size:var(--fs-md);width:var(--btn-sm);height:var(--btn-sm);display:inline-grid;place-items:center;border-radius:var(--radius-sm);}
.lap-x:hover{background:var(--surface2);color:var(--text);}
.lap-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.lap-issue{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--border);}
.lap-issue .lap-btn,.lap-issue .lap-x{grid-row:1 / span 2;grid-column:2;}
.lap-issue-t{min-width:0;word-break:break-word;}
.lap-issue-m{display:flex;flex-wrap:wrap;align-items:center;gap:6px;grid-column:1;}
.lap-issue.done .lap-issue-t{color:var(--text3);text-decoration:line-through;}
.lap-closed{margin-top:6px;font-size:var(--fs-sm);}
.lap-closed summary{cursor:pointer;color:var(--text3);}
.lap-form{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding:8px;background:var(--surface2);border-radius:var(--radius-sm);}
.lap-form .lap-input{height:var(--btn-sm);font-size:var(--fs-sm);width:auto;flex:1 1 140px;min-width:0;}
.lap-form .lap-input-date{flex:0 0 140px;}
.lap-form-act{display:flex;gap:6px;margin-left:auto;}
/* 로그 꼬리표 = 이 로그로 바뀐 상태 */
.lap-ltag{font-size:var(--fs-xs);padding:1px 7px;border-radius:4px;background:var(--surface2);color:var(--text2);white-space:nowrap;}
.lap-ltag-issue{background:var(--red-light);color:var(--red);}
.lap-ltag-done{background:var(--green-light);color:var(--green);}
.lap-ltag-fact{background:#eef2ff;color:#3f3f9a;}

/* ── 로그 모달 '상태도 함께 바꾸기' 상자 — 모달은 .lap 밖이라 B 토큰을 여기 다시 둔다 ── */
.lap-mbox{
  --surface:#ffffff;--surface2:#f4f4f5;--border:#e4e4e7;--border2:#c4c4ca;
  --text:#18181b;--text2:#52525b;--text3:#8e8e96;--accent:#0e7490;--accent-light:#e6f4f7;
  --primary:#18181b;--primary-fg:#ffffff;--radius-sm:6px;
  --fs-xs:11px;--fs-sm:12px;--fs-md:13px;--btn-sm:28px;
  border:1px solid var(--border);border-radius:8px;background:#fafafa;padding:12px 14px;margin:4px 0 14px;
  display:flex;flex-direction:column;gap:10px;font-size:var(--fs-md);color:var(--text);
}
.lap-mbox-hd{font-weight:700;font-size:13px;}
.lap-mrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;}
.lap-mrow-top{align-items:flex-start;}
.lap-mlabel{width:92px;flex:none;font-size:var(--fs-sm);color:var(--text2);font-weight:500;}
.lap-mbox .lap-input{height:var(--btn-sm);flex:1 1 180px;width:auto;min-width:0;font-size:var(--fs-sm);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:0 8px;background:#fff;color:var(--text);font-family:inherit;}
.lap-mbox .lap-input-sm{flex:0 1 130px;}
.lap-m-issues{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;}
.lap-mcheck{display:flex;align-items:center;gap:6px;font-size:var(--fs-md);cursor:pointer;}
.lap-mbox .lap-seg{display:inline-flex;border:1px solid var(--border2);border-radius:var(--radius-sm);overflow:hidden;}
.lap-mbox .lap-seg button{all:unset;cursor:pointer;font-size:var(--fs-sm);height:calc(var(--btn-sm) - 2px);padding:0 10px;display:inline-flex;align-items:center;color:var(--text2);border-right:1px solid var(--border);}
.lap-mbox .lap-seg button:last-child{border-right:0;}
.lap-mbox .lap-seg button[aria-pressed="true"]{background:var(--primary);color:var(--primary-fg);}
.lap-mbox .lap-muted{color:var(--text3);font-size:var(--fs-sm);}
.lap-mbox .lap-hint{color:var(--text3);font-size:var(--fs-xs);}
/* 상자가 있는 새 로그(미리보기)에서만 채널·방향·벤더 담당 칸 숨김 — 진행서 등 다른 화면 모달은 그대로 */
#cp-log-modal-root:has(.lap-mbox) .form-field:has(#cp-modal-channel-pills),
#cp-log-modal-root:has(.lap-mbox) .form-field:has(#cp-modal-direction-pills),
#cp-log-modal-root:has(.lap-mbox) .form-field:has(#cp-modal-vendor-pills){display:none;}

/* ── 로그 추가 창 B안(2단형) — 왼쪽 내용 · 오른쪽 속성 패널 280px (Mobbin Programa) ──
   .modal-box 의 1.5rem 안쪽 여백을 상쇄하고(margin) 창 폭 880px 고정 */
.lap-mb{
  --surface:#ffffff;--surface2:#f4f4f5;--border:#e4e4e7;--border2:#c4c4ca;
  --text:#18181b;--text2:#52525b;--text3:#8e8e96;--accent:#0e7490;--accent-light:#e6f4f7;
  --primary:#18181b;--primary-fg:#ffffff;--radius-sm:6px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--btn:32px;--btn-sm:28px;
  margin:-1.5rem;width:880px;max-width:calc(95vw - 0px);display:flex;flex-direction:column;color:var(--text);font-size:var(--fs-md);
}
.lap-mb .lap-hint{font-size:var(--fs-xs);color:var(--text3);}
.lap-mb .lap-grow{flex:1;}
.lap-mb .lap-badge{font-size:var(--fs-xs);color:var(--text2);background:var(--surface2);border:1px dashed var(--border2);border-radius:999px;padding:1px 8px;font-weight:400;}
.lap-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.lap-req{color:#dc2626;}
.lap-mb-hd{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--border);}
.lap-mb-hd strong{font-size:15px;}
.lap-mb-body{display:flex;min-height:0;}
.lap-mb-main{flex:1 1 auto;min-width:0;padding:14px 20px;display:flex;flex-direction:column;gap:8px;}
.lap-mb-title{font-family:inherit;border:0;outline:none;padding:4px 0;font-size:18px;font-weight:700;color:var(--text);width:100%;box-sizing:border-box;background:transparent;}
.lap-mb-title::placeholder{color:#a1a1aa;font-weight:500;}
/* Quill — 테두리 없는 본문, 툴바는 얇게 */
.lap-mb .ql-toolbar.ql-snow{border:0;border-bottom:1px solid var(--border);padding:4px 0;}
.lap-mb .ql-container.ql-snow{border:0;font-family:inherit;font-size:14px;}
.lap-mb-quill .ql-editor{min-height:220px;padding:8px 0;line-height:1.65;}
.lap-mb-drop{border:1px dashed var(--border2) !important;border-radius:8px;padding:10px 12px;font-size:var(--fs-sm);color:var(--text3);cursor:pointer;background:transparent;}
.lap-mb-side{flex:0 0 280px;box-sizing:border-box;background:#fafafa;border-left:1px solid var(--border);padding:14px 16px;display:flex;flex-direction:column;gap:14px;}
.lap-mb-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.lap-mb-lbl{font-size:var(--fs-xs);font-weight:500;color:#71717a;}
.lap-mb-in{width:100%;box-sizing:border-box;height:var(--btn);font-size:var(--fs-sm);}
.lap-mb-static{font-size:var(--fs-sm);font-weight:500;}
.lap-mb-prod{padding-right:34px;}
.lap-mb-clear{position:absolute;right:2px;top:2px;}
.lap-mb-results{position:absolute;left:0;right:0;top:100%;z-index:5;background:#fff;border:1px solid var(--border);border-radius:8px;margin-top:4px;max-height:280px;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.08);}
.lap-mb-chips{display:flex;flex-wrap:wrap;gap:6px;}
.lap-mb .lap-mb-chip{font-family:inherit;height:26px;padding:0 9px;border-radius:999px;border:1px solid var(--border2);background:#fff;font-size:var(--fs-sm);color:#3f3f46;cursor:pointer;margin:0;}
.lap-mb .lap-mb-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:500;}
.lap-mb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.lap-mb .cp-share-field{margin:0;}
/* 오른쪽 패널 안의 '상태도 함께' 상자 — 세로로 쌓기 */
.lap-mb-side .lap-mbox{margin:0;padding:12px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;gap:8px;}
.lap-mb-side .lap-mbox-hd{font-size:var(--fs-xs);font-weight:500;color:#71717a;}
.lap-mb-side .lap-mbox-hd .lap-hint{display:none;}
.lap-mb-side .lap-mrow{flex-direction:column;align-items:stretch;gap:4px;}
.lap-mb-side .lap-mlabel{width:auto;font-size:var(--fs-xs);color:var(--text2);}
.lap-mb-side .lap-mbox .lap-input,.lap-mb-side .lap-mbox .lap-input-sm{flex:none;width:100%;}
.lap-mb-ft{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);}
.lap-mb-again{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text2);}
@media (max-width:760px){.lap-mb-body{flex-direction:column;}.lap-mb-side{flex:none;border-left:0;border-top:1px solid var(--border);}}

/* 품목 썸네일 (표 28px · 로그 상세 창 머리줄 24px) */
.lap-thumb{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;border-radius:6px;overflow:hidden;
  background:var(--surface2);border:1px solid var(--border);color:var(--text3);}
.lap-thumb.has-img{background:#fff;}
.lap-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.lap-thumb.is-sm{width:28px;height:28px;}

/* ── 로그 상세 창 A안(2단형) — 새 화면 미리보기에서만 (lapLogDetailHTML, 목업 artifact 89fcLNh4qDsWtteShSNd99) ──
   Mobbin Todoist·Featurebase: 왼쪽 제목·본문·첨부·댓글(입력은 아래 고정) / 오른쪽 280px 속성.
   .modal-box 1.5rem 여백 상쇄 + 높이 고정 → 양쪽 칸이 각자 스크롤. 댓글 칸은 기존 .cp-comment-* 를 이 안에서만 다시 칠함 */
.lld{
  --surface:#ffffff;--surface2:#f4f4f5;--border:#e4e4e7;--border2:#d4d4d8;--text:#18181b;--text2:#52525b;--text3:#8e8e96;
  margin:-1.5rem;width:960px;max-width:95vw;height:min(780px,90vh);display:flex;flex-direction:column;color:var(--text);font-size:13px;
}
.lld-muted{color:var(--text3);font-weight:400;}
.lld-grow{flex:1 1 auto;}
.lld-hd{flex:0 0 52px;display:flex;align-items:center;gap:8px;padding:0 12px 0 20px;border-bottom:1px solid var(--border);}
.lld-prod{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px;}
.lld-count{font-size:12px;color:var(--text3);margin-right:2px;font-variant-numeric:tabular-nums;}
.lld-vsep{width:1px;height:18px;background:var(--border);margin:0 2px;}
.lld .lap-thumb.is-xs{width:24px;height:24px;}
.lld-ib{all:unset;box-sizing:border-box;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text2);cursor:pointer;}
.lld-ib:hover{background:var(--surface2);color:var(--text);}
.lld-ib:disabled{opacity:.35;cursor:default;background:none;}
.lld-ib:focus-visible{outline:2px solid var(--sel-line);}
.lld-menu{position:relative;display:inline-flex;}
.lld-pop{display:none;position:absolute;right:0;top:34px;z-index:5;width:180px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px;flex-direction:column;}
.lld-menu.open .lld-pop{display:flex;}
.lld-menu.open > .lld-ib{background:var(--surface2);color:var(--text);}
.lld-mi{all:unset;box-sizing:border-box;height:32px;padding:0 10px;border-radius:6px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer;}
.lld-mi svg{color:var(--text2);}
.lld-mi:hover{background:var(--surface2);}
.lld-mi.danger,.lld-mi.danger svg{color:#b91c1c;}
.lld-msep{height:1px;background:#f0f0f2;margin:4px 0;}

.lld-body{flex:1 1 auto;min-height:0;display:flex;}
.lld-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.lld-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 28px 12px;display:flex;flex-direction:column;gap:14px;}
.lld-title{margin:0;font-size:20px;font-weight:700;line-height:1.4;word-break:keep-all;}
.lld-content{font-size:14px;line-height:1.75;color:#27272a;}
.lld .cp-detail-content{padding:0;border:0;margin:0;}
.lld-atts{margin:0;}
.lld-cmts{border-top:1px solid #f0f0f2;padding-top:16px;margin:0;display:flex;flex-direction:column;gap:12px;}
.lld-sec-hd{display:flex;align-items:center;gap:8px;font-size:13px;}
.lld .cp-comment-list{display:flex;flex-direction:column;gap:14px;}
.lld .cp-comment-card.lld-cmt{display:flex;gap:10px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;}
.lld-cmt-main{flex:1 1 auto;min-width:0;}
.lld .cp-comment-head{display:flex;align-items:center;gap:6px;font-size:12px;margin:0;}
.lld .cp-comment-author{font-weight:700;color:var(--text);}
.lld .cp-comment-time{color:var(--text3);font-size:12px;}
.lld .cp-comment-actions{margin-left:auto;display:inline-flex;gap:2px;opacity:0;transition:opacity .12s;}
.lld .cp-comment-card:hover .cp-comment-actions,.lld .cp-comment-actions:focus-within{opacity:1;}
.lld .cp-comment-act-btn{all:unset;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text3);cursor:pointer;}
.lld .cp-comment-act-btn:hover{background:var(--surface2);color:var(--text);}
.lld .cp-comment-act-btn.danger:hover{color:#b91c1c;}
.lld .cp-comment-body{font-size:13px;line-height:1.6;margin-top:2px;white-space:pre-wrap;word-break:break-word;}
.lld-av{width:28px;height:28px;flex-shrink:0;border-radius:50%;background:var(--surface2);color:#3f3f46;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}
.lld-av.is-sm{width:20px;height:20px;font-size:10px;}
.lld-empty{font-size:12px;padding:4px 0;}
.lld-input{flex:0 0 auto;margin:0 28px 20px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:6px;}
.lld-input:focus-within{border-color:var(--sel-line);}
.lld .cp-comment-textarea{border:0;outline:none;box-shadow:none;resize:none;min-height:40px;height:40px;padding:0;font-family:inherit;font-size:13px;background:transparent;}
.lld-input-ft{display:flex;align-items:center;gap:6px;}

.lld-side{flex:0 0 280px;box-sizing:border-box;border-left:1px solid var(--border);background:#fafafa;padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;}
.lld-props{display:flex;flex-direction:column;}
.lld-prop{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;min-height:32px;padding:3px 0;font-size:13px;}
.lld-prop > span:first-child{font-size:12px;color:#71717a;}
.lld-sub{font-size:11px;color:var(--text3);}
.lld-chips{display:flex;flex-wrap:wrap;gap:4px;}
.lld-chip{height:22px;padding:0 8px;border-radius:6px;background:#fff;border:1px solid var(--border);display:inline-flex;align-items:center;gap:5px;font-size:12px;}
.lld-chip i{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.lld-who{display:inline-flex;align-items:center;gap:6px;}
.lld-tag{height:20px;padding:0 6px;border-radius:4px;background:var(--surface2);font-size:11px;color:var(--text2);display:inline-flex;align-items:center;margin-left:4px;}
.lld-tag.is-over{background:#fee2e2;color:#b91c1c;}
.lld-side-sec{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px;}
.lld-side-lbl{font-size:12px;color:#71717a;}
.lld-state{display:flex;align-items:center;gap:6px;font-size:12px;padding:6px 8px;border-radius:6px;background:#fff;border:1px solid var(--border);line-height:1.4;}
.lld-st{flex-shrink:0;height:20px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:500;display:inline-flex;align-items:center;}
.lld-st-fact{background:var(--sel-bg);color:var(--sel-text);}
.lld-st-issue{background:#fff1e6;color:#9a3412;}
.lld-st-done{background:#ecfdf3;color:#15803d;}
.lld-voc{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px;font-size:12px;}
.lld-voc-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lld-voc-hd > span:first-child{color:#71717a;}
.lld-voc-hd b{color:#b91c1c;}
.lld-voc.is-done .lld-voc-hd b{color:#15803d;}
.lld-voc-note{color:var(--text2);line-height:1.5;}
.lld-acts{display:flex;flex-direction:column;gap:8px;}
.lld-acts .oc-btn{width:100%;justify-content:center;}
@media (max-width:760px){
  .lld{height:auto;max-height:90vh;}
  .lld-body{flex-direction:column;overflow-y:auto;}
  .lld-side{flex:none;border-left:0;border-top:1px solid var(--border);}
  .lld-prod{max-width:160px;}
}

/* ── VOC 메뉴 (cpl-voc.js, 2026-10-26) — 로그 추가 새 화면의 로그 표형을 그대로 씀(.lap .lap-ltbl) ── */
.lap-voc .lap-lbar{gap:6px;}
.lap-voc .lap-lbar .lap-hint{margin-left:8px;}
.lap-voc .lap-ltbl th:nth-child(4){width:96px;} .lap-voc .lap-ltbl th:nth-child(6){width:104px;}
.lap-voc .lap-ltbl-p .lap-link:hover{text-decoration:underline;}
.lap-voc-star{color:#f59e0b;margin-right:4px;}
.lap-voc-pname{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* 진행서 VOC 탭 — 탭 칸 안이라 바깥 여백·바탕 없이, 표 최소 폭은 탭 폭에 맞춤(품목 칸이 없음) */
.lap.lap-voc-tab{padding:0;background:transparent;min-height:0;gap:12px;}
.lap-voc-tab .lap-ltbl{min-width:560px;}
.lap-voc-tab .lap-ltbl th:nth-child(n){width:auto;}
.lap-voc-sku{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* 탭 칸 안에 넣는 로그 표(그룹 진행서 로그 탭 · 분할 보기 칸) — 바깥 여백·바탕 없음 */
.lap.lap-intab{padding:0;background:transparent;min-height:0;gap:12px;}
.lap-intab .lap-ltbl{min-width:640px;}
.lap-intab .lap-ltbl th:nth-child(n){width:auto;}
.lap-grp-sku{flex:1 1 auto;min-width:0;font-size:12.5px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
/* 분할 보기 — 칸이 좁아 3칸(시간 · 제목+분류 점+본문 한 줄 · 작성자) */
.lap-intab .lap-mp-tbl{min-width:0;}
.lap-mp-ttl{white-space:normal;padding-top:6px !important;padding-bottom:6px !important;min-width:0;}
.lap-mp-ttl b{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-mp-sub{display:block;margin-top:2px;font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-mp-sub em{font-style:normal;margin-left:6px;}
.lap-mp-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:middle;}
/* 분할 보기 고르기 — 줄 앞 체크(시간 칸 안), 고른 줄 연청록 */
#page-pl-log-add .lap-ltbl th:nth-child(1){width:76px;}
.lap-msel{margin:0 6px 0 0;vertical-align:-2px;accent-color:var(--accent);cursor:pointer;}
.lap-ltbl-row.msel td{background:#f0fbfd;}
/* ── 상태 카드 진행 체크 날짜(2026-10-26) — 샘플 · 런칭 준비. 진행 중 = 노란 점 칩(누르는 칩 26), 완료 = 초록 태그 ── */
.lap-sub-props{margin:0;display:flex;flex-direction:column;gap:6px;}
.lap-sub .lap-prop{grid-template-columns:84px 1fr;}
.lap-sub-ingbtn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid var(--border2);border-radius:999px;font-size:var(--fs-sm);color:var(--text2);background:#fff;box-sizing:border-box;}
.lap-sub-ingbtn i,.lap-sub-ing i{width:7px;height:7px;border-radius:50%;background:#d4d4d8;}
.lap-sub-ingbtn:hover{background:var(--surface2);}
.lap-sub-ingbtn.on{background:#fcf1dc;border-color:#ecc97a;color:#a16207;font-weight:500;}
.lap-sub-ingbtn.on i,.lap-sub-ing i{background:#d97706;}
.lap-sub-ing{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;background:#fcf1dc;color:#a16207;font-size:var(--fs-xs);font-weight:500;}
.lap-sub-done{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#e3f6e9;color:#15803d;font-size:var(--fs-xs);font-weight:500;}
.lap-sub-url{flex:1 1 180px;min-width:0;}
.lap-sub-tip{flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-cert-na{color:#64748b;background:#f1f5f9;}
/* 현재 단계 드롭박스(2026-10-26) — 멈춘 품목은 회색 */
.lap-stage-sel{width:auto;max-width:200px;font-weight:600;}
.lap-stage-sel.is-stop{color:var(--text3);}
/* 이정표 자동 로그(2026-10-26) — 회색 얇은 한 줄 + 자동 표시, [자동 기록 숨기기] */
.lap-ltbl-row.is-auto td{height:34px;color:var(--text3);}
.lap-ltbl-row.is-auto .lap-ltbl-ttl b{font-weight:400;color:var(--text2);}
.lap-ltbl-row.is-auto .lap-thumb{opacity:.6;}
.lap-auto-tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;margin-right:6px;border-radius:4px;background:var(--surface2,#f4f4f5);color:var(--text3,#8e8e96);font-size:10.5px;font-weight:500;vertical-align:1px;}
.lap-hideauto{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text2,#52525b);cursor:pointer;white-space:nowrap;margin-left:6px;}
.cp-logtab-row.is-auto td{color:#8e8e96;}
.cp-logtab-row.is-auto .c-title{font-weight:400;}
/* 그룹 품목 표시(2026-10-26) — 날짜 칸 묶음 위 한 줄 + 이 SKU 에만 들어가는 칸 표시 */
.lap-grp-note{font-size:11px;color:#0e7490;background:#e6f4f7;border-radius:4px;padding:1px 8px;font-weight:500;}
.lap-sku-only{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;border:1px dashed #c4c4ca;color:#71717a;font-size:10.5px;font-weight:500;white-space:nowrap;}
/* 휴지통(2026-10-26 — 꽉 찬 표, VOC·로그 추가 목록과 같은 모양) */
.lap-trash .lap-ltbl{min-width:1040px;}
.lap-trash .lap-ltbl th:nth-child(1){width:60px;} .lap-trash .lap-ltbl th:nth-child(2){width:260px;} .lap-trash .lap-ltbl th:nth-child(4){width:110px;}
.lap-trash .lap-ltbl th:nth-child(5){width:110px;} .lap-trash .lap-ltbl th:nth-child(6){width:96px;} .lap-trash .lap-ltbl th:nth-child(7){width:84px;} .lap-trash .lap-ltbl th:nth-child(8){width:170px;}
.lap-trash .lap-ltbl-row{cursor:default;}
.lap-trash-pname{font-weight:500;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere;}
.lap-trash-body{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lap-trash-who{font-size:var(--fs-sm);color:var(--text2);white-space:nowrap;}
.lap-trash-who .lap-hint{display:block;}
.lap-trash-act{white-space:nowrap;text-align:right;}
.lap-trash-act .oc-btn + .oc-btn{margin-left:6px;}
.lap-trash .lap-ltbl-ttl{white-space:normal;}
.lap-trash .lap-ltbl-ttl b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
