/* ════════ 작업 현황(#/dash) — 구성원 요약 + 작업 타임라인(펼침형). §0.5 절제: 채운 필 금지, 점·라인으로 위계. ════════ */
/* 섹션 헤더 */
.dash-sec-head { display: flex; align-items: baseline; gap: 10px; margin: 26px 0 10px; flex-wrap: wrap; }
.dash-sec-title { margin: 0; font-size: 16px; font-weight: 800; color: var(--ink); }
.dash-sec-hint { font-size: 12.5px; font-weight: 600; color: var(--muted); }

/* 유형 태그(점 + 라벨) — 색은 점에만 */
.act-type { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--ink-sub); white-space: nowrap; flex: none; }
.act-type-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--muted-2); flex: none; }
.act-type.tone-mint  .act-type-dot { background: var(--mint); }
.act-type.tone-blue  .act-type-dot { background: var(--blue); }
.act-type.tone-coral .act-type-dot { background: var(--coral); }
.act-type.tone-teal  .act-type-dot { background: var(--teal); }
.act-type.tone-amber  .act-type-dot { background: #D9A441; }
.act-type.tone-violet .act-type-dot { background: #8B7BD8; }
.act-type.tone-muted .act-type-dot { background: var(--muted-2); }

/* ① 구성원 요약 */
.dash-summary .dash-person { display: block; padding: 14px 16px; border-bottom: 1px solid var(--line-row); }
.dash-summary .dash-person:last-child { border-bottom: none; }
.dash-person[role="button"] { cursor: pointer; transition: background .12s; }
.dash-person[role="button"]:hover { background: var(--bg-tint); }
.dash-person.active { background: var(--bg-sel); box-shadow: inset 3px 0 0 var(--blue); }
.dash-person-top { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; }
.dash-person-name { font-size: 15.5px; font-weight: 800; color: var(--ink); }
.dash-person-meta { font-size: 12.5px; font-weight: 600; color: var(--muted-2); white-space: nowrap; }
.dash-person-meta strong { color: var(--ink); }
.dash-ai-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.dash-ai { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg-tint); font-size: 12px; font-weight: 600; color: var(--ink-sub); }
.dash-ai-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--node-blue-soft); flex: none; }
.dash-ai-name { color: var(--ink-sub); }
.dash-ai-n { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--muted-head); }
.dash-latest { display: flex; align-items: baseline; gap: 8px; margin-top: 9px; min-width: 0; }
.dash-latest-label { font-size: 11.5px; font-weight: 700; color: var(--muted); flex: none; }
.dash-latest-title { font-size: 13px; color: var(--ink-sub); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

/* ② 필터 칩 */
.dash-filters { display: flex; flex-direction: column; gap: 10px; margin: 4px 0 12px; }
.dash-chip-group { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.dash-chip-label { font-size: 12px; font-weight: 700; color: var(--muted-head); margin-right: 4px; }
.dash-chip { padding: 5px 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); color: var(--ink-sub); font-size: 13px; font-weight: 600; cursor: pointer; transition: border-color .12s, color .12s, background .12s; }
.dash-chip:hover { border-color: var(--blue); color: var(--ink); }
.dash-chip.active { background: var(--blue); border-color: var(--blue); color: #fff; }
/* 내 프로필 — 단일선택 chip 그룹(개발 이해도·말투·응답 길이). CSS 누락으로 기본 버튼처럼 보이던 것 수정 — .dash-chip 패턴과 통일. */
.prof-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 2px; }
.prof-chip { padding: 6px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); color: var(--ink-sub); font-size: 13px; font-weight: 600; cursor: pointer; transition: border-color .12s, color .12s, background .12s; }
.prof-chip:hover { border-color: var(--blue); color: var(--ink); }
.prof-chip.on { background: var(--blue); border-color: var(--blue); color: #fff; }
/* 칩 줄에 이어 붙는 '직접 입력' 칸(#1085) — 프리셋 칩 다음에 오는 또 하나의 선택지라 같은 알약 모양·높이로.
   폭은 내용에 관계없이 고정(칩들과 한 줄), 좁아지면 wrap 이 알아서 다음 줄로 넘긴다. */
.field input.prof-chip-input, .prof-chip-input { padding: 6px 14px; width: 190px; max-width: 100%; box-sizing: border-box;
  border: 1px dashed var(--line-net); border-radius: 999px; background: var(--bg); color: var(--ink);
  font-size: 13px; font-weight: 600; line-height: 1.35; }
.prof-chip-input::placeholder { color: var(--muted-2); font-weight: 500; }
.prof-chip-input:hover { border-color: var(--blue); }
.prof-chip-input:focus { outline: none; border-style: solid; border-color: var(--blue); background: var(--bg-tint); }

/* ③ 작업 타임라인(펼침형) */
.dash-feed .act-card { border-bottom: 1px solid var(--line-row); }
.dash-feed .act-card:last-child { border-bottom: none; }
.act-head { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; cursor: pointer; transition: background .12s; }
.act-head:hover { background: var(--bg-tint); }
.act-card.open > .act-head { background: var(--bg-tint); }
.act-caret { color: var(--muted-2); font-size: 11px; line-height: 1.7; flex: none; width: 12px; }
.act-head-main { flex: 1; min-width: 0; }
.act-titleline { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.act-title { font-size: 14.5px; font-weight: 700; color: var(--ink); line-height: 1.4; }
.act-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.act-meta .act-who { color: var(--ink-sub); font-weight: 700; }
.act-meta .act-ai { color: var(--muted-head); }
.act-meta .act-sep { color: var(--muted-3); }
.act-sig { padding: 1px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; border: 1px solid var(--line-net-2); color: var(--ink-note); background: var(--bg-punch); }
.act-sig.sig-is { color: var(--mint-deep); background: var(--bg-success); border-color: var(--node-mint-soft); }

/* 펼친 상세 */
.act-detail { padding: 4px 16px 18px 38px; }
.act-detail .md { font-size: 13.5px; color: var(--ink-sub); line-height: 1.6; }
.act-group { margin-top: 14px; }
.act-group-label { font-size: 11.5px; font-weight: 800; color: var(--muted-head); text-transform: none; margin-bottom: 7px; }
.act-links { display: flex; flex-direction: column; gap: 6px; }
.act-link { display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-tint); color: var(--ink); font-size: 13px; font-weight: 600; text-decoration: none; max-width: 100%; }
.act-link:hover { border-color: var(--blue); }
.act-link-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.act-rel { font-size: 11px; font-weight: 800; color: var(--muted-head); background: var(--bg-tint-2); border-radius: 5px; padding: 1px 6px; flex: none; }
.act-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 22px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-row); }
@media (max-width: 600px) { .act-facts { grid-template-columns: 1fr; } }
.act-fact { display: flex; gap: 10px; font-size: 12.5px; align-items: baseline; }
.act-fact-k { color: var(--muted-head); font-weight: 600; flex: none; min-width: 120px; }
.act-fact-v { color: var(--ink-sub); font-weight: 600; min-width: 0; word-break: break-word; }
/* 펼침 — AI가 기록한 기술 상세 제목(겉엔 쉬운 summary, 펼치면 원제목) */
.act-techtitle { display: flex; align-items: baseline; gap: 8px; margin: 2px 0 12px; padding: 8px 11px; background: var(--bg-tint); border: 1px solid var(--line-row); border-radius: 9px; }
.act-techtitle-label { font-size: 11px; font-weight: 800; color: var(--muted-head); flex: none; }
.act-techtitle-text { font-size: 13px; color: var(--ink-sub); font-weight: 600; min-width: 0; word-break: break-word; }

/* 구성원 섹션 — 내 목록 편집 버튼(우측) + 편집 팝업(검색·체크) */
.dash-edit-btn { margin-left: auto; }
.dash-watch-help { font-size: 13px; color: var(--ink-sub); margin: 0 0 12px; line-height: 1.5; }
.dash-watch-search { width: 100%; box-sizing: border-box; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: 14px; margin-bottom: 10px; }
.dash-watch-search:focus { outline: none; border-color: var(--blue); }
.dash-watch-list { max-height: 46vh; overflow: auto; border: 1px solid var(--line-row); border-radius: 10px; }
.dash-watch-row { display: flex; align-items: center; gap: 10px; padding: 9px 13px; border-bottom: 1px solid var(--line-row); cursor: pointer; }
.dash-watch-row:last-child { border-bottom: none; }
.dash-watch-row:hover { background: var(--bg-tint); }
.dash-watch-row input { flex: none; width: 16px; height: 16px; accent-color: var(--blue); }
.dash-watch-name { font-size: 14px; color: var(--ink); font-weight: 600; }
.dash-watch-tag { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--muted-head); }
.dash-watch-empty { padding: 16px 13px; font-size: 13px; color: var(--muted); text-align: center; }
.dash-watch-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }

/* ── 저장/편집 오버레이 액션 ── */
.ov-actions { display: flex; gap: 10px; margin-top: 16px; }
.ov-box .frow { display: flex; gap: 12px; flex-wrap: wrap; }
.ov-box .frow .field { flex: 1; min-width: 160px; }
.ov-box textarea.admin-ta { min-height: 220px; }

/* ── 종류 레지스트리 테이블(관리) ── */
.kinds-table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.kinds-table td { padding: 10px 12px; border-bottom: 1px solid var(--line-row); vertical-align: middle; }
.kinds-table tr:last-child td { border-bottom: none; }
.kinds-table .kr-h { font-size: 12px; font-weight: 700; color: var(--muted-head); border-bottom: 1px solid var(--line); white-space: nowrap; }
.kr-row { cursor: pointer; }
.kr-row:hover { background: var(--bg-tint); }
.kr-num { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--ink); }
.inject-tag { font-size: 12.5px; font-weight: 600; color: var(--ink-sub); white-space: nowrap; }

/* ── 안내(#/learn) — §0.5 절제: 무채색 카드 + 작은 점만. 채색은 글리프/탭 언더라인 외 없음. ── */
.learn-kinds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
@media (max-width: 820px) { .learn-kinds { grid-template-columns: 1fr; } }
.learn-kind { padding: 18px 20px 16px; }
/* V4: 통합 예정(legacy) 종류 카드 — 약하게(graceful, 무중단 — 행은 유지하되 신규 분류엔 안 씀) */
.learn-kind-legacy { opacity: .72; }
.learn-kind-head { display: flex; align-items: center; gap: 11px; }
.learn-kind-titles { flex: 1; min-width: 0; }
.learn-kind-name { font-size: 16px; font-weight: 800; color: var(--ink); line-height: 1.25; }
.learn-kind-en { font-size: 12px; font-weight: 600; color: var(--muted-2); }
.learn-def { margin: 12px 0 4px; font-size: 13.5px; color: var(--ink-sub); line-height: 1.55; }
.learn-def .md-p { margin: 0; }
.learn-rows { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; border-top: 1px solid var(--line-row); padding-top: 12px; }
.learn-row { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: start; }
.learn-row-k { font-size: 12px; font-weight: 700; color: var(--muted-head); padding-top: 1px; }
.learn-row-v { font-size: 13px; color: var(--ink-sub); line-height: 1.5; }
.learn-row-v .md-p { margin: 0; }
.learn-kind-foot { margin-top: 14px; }
.learn-src-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.learn-src-table td { padding: 10px 12px; border-bottom: 1px solid var(--line-row); vertical-align: top; font-size: 13px; color: var(--ink-sub); }
.learn-src-table tr:last-child td { border-bottom: none; }
.src-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--ink-sub); white-space: nowrap; }
.dot6.dim { background: var(--muted-2); }
.learn-cadence { color: var(--muted-2); }


/* ════════ 작업(activity) 한 줄 + 상세 — 렌더러 web/activity-view.ts 소유.
   14-files-upload.css 에 얹혀 있던 것을 여기로 옮겼다(#1610): 파일 업로드 CSS 는 이 컴포넌트의 집이 아니라,
   스타일을 고치려는 사람이 찾을 수가 없었다. ════════ */

/* 타임라인 한 줄 — 접힘(캐럿+유형칩+요약/메타) → 클릭 펼침(상세). #/projects2 회사전체·#/dash 공용. */
.act-row { border-top: 1px solid var(--line-row); }
.act-row:first-child { border-top: none; }
.act-row-head { display: flex; align-items: flex-start; gap: 9px; padding: 10px 6px; }
.act-row-expandable > .act-row-head { cursor: pointer; border-radius: 9px; }
.act-row-expandable > .act-row-head:hover { background: var(--bg-tint); }
.act-row-caret { flex: none; width: 12px; text-align: center; color: var(--muted-2); font-size: 10px; line-height: 20px; }
.act-row-caret-empty { visibility: hidden; }
.act-row.open > .act-row-head .act-row-caret { color: var(--ink-sub); }
.act-row-head > .act-type { flex: none; margin-top: 2px; }
.act-row-body { min-width: 0; flex: 1; }
.act-row-title { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.42; word-break: break-word; }
.act-row-meta { margin-top: 3px; font-size: 12px; color: var(--muted-2); }
.act-row-who { color: var(--ink-sub); font-weight: 600; }
.act-row-agent { color: var(--muted-2); }
.act-row-time { color: var(--muted-2); }
.act-row-tag { display: inline-block; margin-left: 8px; font-size: 10.5px; font-weight: 700; color: var(--ink-note); background: var(--bg-note); border: 1px solid var(--line-note); border-radius: 6px; padding: 0 6px; line-height: 16px; vertical-align: 1px; }
.act-row-detail { margin: 0 6px 11px 33px; padding: 13px 15px; background: var(--bg-tint); border: 1px solid var(--line); border-radius: 10px; min-width: 0; }

/* ── 작업 상세(act-doc) — 목록의 인라인 펼침과 단건 모달이 **같은** 템플릿(#852 · #1610 전면 재설계) ──
   유형이 8가지(기능·수정·결정·문서·리서치·검토·운영·기타)여도 사람이 읽는 글의 구조는 하나다:
     머리(무슨 일인가 · 누가 · 언제) → 리드(기술 제목) → 본문 → 연결된 기록.
   크기 위계를 세 단(19 / 14.5 / 13.5px)으로 벌린 게 핵심 — 이전 판은 15 / 13 / 13 이라 셋이 한 덩어리로
   뭉쳤고, 하필 기술 제목이 제일 길어서 그쪽이 제목처럼 읽혔다. 굵기만으로는 위계가 서지 않는다. */
.act-doc { min-width: 0; }

/* 머리 — 모달에서만(목록 행은 이미 자기 헤드를 갖는다). */
.act-doc-head { padding-bottom: 15px; margin-bottom: 15px; border-bottom: 1px solid var(--line); }
.act-doc-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 7px; }
.act-doc-tag { font-size: 10.5px; font-weight: 700; color: var(--ink-note); background: var(--bg-note); border: 1px solid var(--line-note); border-radius: 6px; padding: 0 7px; line-height: 17px; }
.act-doc-title { margin: 0; font-size: 19px; font-weight: 800; color: var(--ink); line-height: 1.4; letter-spacing: -.2px; word-break: break-word; }
.act-doc-by { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 9px; font-size: 12.5px; font-weight: 600; color: var(--muted-head); }
.act-doc-who { font-weight: 700; color: var(--ink-sub); }
.act-doc-agent { border: 1px solid var(--line); border-radius: 6px; padding: 0 7px; line-height: 18px; color: var(--muted-head); }
/* 누가·언제는 12.5px 작은 글씨다 — muted-2(2.4:1)로는 안 읽힌다. 시스템 처방 A12 의 하한(muted-head)까지 올린다. */
.act-doc-when { color: var(--muted-head); }

/* 리드 + 본문 — 라벨('무엇을 했나'·'자세히')을 없앴다. 제목 아래 굵은 첫 문단이 곧 그 답이다. */
.act-doc-read { display: flex; flex-direction: column; gap: 11px; min-width: 0; }
.act-doc-lead { margin: 0; font-size: 14.5px; font-weight: 700; color: var(--ink); line-height: 1.62; word-break: break-word; }
.act-doc-md { font-size: 13.5px; color: var(--ink-sub); line-height: 1.72; word-break: break-word; }
/* 작업 본문은 '문서'가 아니라 '카드 속 메모'다 — 위키용 큰 헤딩(.md-h1~3 = 19~15.5px)이 그대로 먹으면
   본문 소제목이 상세 제목과 같아져 위계가 뒤집힌다. 카드 눈금으로 눌러 준다(특이도 0,2,0 로 확실히). */
.act-doc-md .md-h { margin: 14px 0 6px; }
.act-doc-md .md-h1, .act-doc-md .md-h2, .act-doc-md .md-h3 { font-size: 13.5px; color: var(--ink); }
.act-doc-md .md-h4, .act-doc-md .md-h5, .act-doc-md .md-h6 { font-size: 13px; }
.act-doc-md .md-p, .act-doc-md .md-list, .act-doc-md .md-pre, .act-doc-md .md-quote { margin-bottom: 9px; }
.act-doc-md .md-list { padding-left: 19px; }
.act-doc-md > :last-child { margin-bottom: 0; }

/* 연결된 기록 — 지식·프로젝트·코드·세션·원본이 **한 벌의 목록**. 이전 판은 '만든 것 / 참고한 것' 아래
   파란 제목만 나열해 그게 지식인지 프로젝트인지 화면 어디에도 없었고(#1610 신고), 부풀어 있는 위키
   제목(실측 평균 84자)이 통째로 박혀 파란 글자 벽이 됐다. 이제 행마다 종류 아이콘 + 관계 라벨 +
   이름/부연 분리 + 새 탭(↗)·화면 이동(→) 어포던스를 함께 말한다. */
.act-doc-sec { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); min-width: 0; }
.act-doc-label { margin-bottom: 7px; padding-left: 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .4px; color: var(--muted-head); }
.act-lnks { display: flex; flex-direction: column; gap: 2px; }
/* hover 배경을 넓히려고 음수 마진을 쓰지 않는다 — 390px 에서 모달 안에 가로 스크롤이 생겼다(실측 322>312).
   대신 행과 라벨에 같은 좌측 여백(8px)을 줘 목록 전체가 본문에서 한 단 들여쓰인 것으로 읽히게 한다. */
.act-lnk { display: flex; align-items: flex-start; gap: 11px; min-width: 0; padding: 9px 8px; border-radius: 10px; color: inherit; }
a.act-lnk { transition: background .12s ease; }
a.act-lnk:hover { background: var(--bg-tint); }
a.act-lnk:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.act-lnk-ico { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: var(--bg-tint-2); color: var(--muted-head); }
a.act-lnk:hover .act-lnk-ico { background: var(--bg-punch); color: var(--blue); }
.act-lnk-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding-top: 1px; }
/* 종류 라벨은 이 재설계의 핵심 정보('지식인지 프로젝트인지 모르겠다'가 신고 원문이었다) — 흐린 회색으로
   깔지 않는다(muted 는 흰 배경에서 2.9:1). 위계는 색이 아니라 크기(11 vs 13.5)와 굵기(600 vs 800)로 준다. */
.act-lnk-kind { font-size: 11px; font-weight: 600; letter-spacing: .2px; color: var(--ink-sub); }
/* 이름·부연 모두 2줄까지 — 200자짜리 제목 하나가 모달을 삼키지 않게. 전문은 툴팁·링크로 읽는다. */
.act-lnk-name { font-size: 13.5px; font-weight: 800; color: var(--ink); line-height: 1.45; word-break: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.act-lnk-name.mono { font-size: 13px; color: var(--ink); word-break: break-all; }
a.act-lnk:hover .act-lnk-name { color: var(--blue); }
.act-lnk-sub { font-size: 12.5px; font-weight: 500; color: var(--muted-head); line-height: 1.5; word-break: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.act-lnk-go { flex: none; margin-top: 3px; color: var(--muted-2); }
a.act-lnk:hover .act-lnk-go { color: var(--blue); }

.act-doc-foot { margin-top: 14px; font-size: 11.5px; font-weight: 600; color: var(--muted-2); }
.act-doc-empty { margin-top: 2px; font-size: 13px; color: var(--muted); line-height: 1.6; }

/* 인라인 펼침 — 배경이 틴트라 hover 틴트가 안 보인다(흰색으로 뒤집는다). 긴 본문은 목록을 삼키지 않게
   가둔다 — 모달(단건·전체 보기)에선 제한 없이 다 읽힌다. */
.act-row-detail a.act-lnk:hover { background: var(--bg); }
.act-row-detail .act-lnk-ico { background: var(--bg); }   /* 틴트 위 틴트라 타일이 안 보인다 — 흰색으로 뒤집는다 */
.act-row-detail .act-doc-md { max-height: 420px; overflow-y: auto; scrollbar-width: thin; }
