/* B2H SFA v0.2 — 다크 콘솔 (참고: PAP SFA v2 구조 · 액센트는 코랄) */
:root{
  --bg:#0B0E14; --sub:#131824; --panel:#1A2130; --panel2:#151B27; --line:#232A38;
  --tx:#E8ECF2; --mut:#9BA6B8; --dim:#6b7686;
  --accent:#FF7A59; --accent-dk:#2a1510; --amber:#F5A623; --red:#FF5C5C;
  --slate:#7fa8ff; --purple:#b98cff;
  /* 차트 — dataviz 검증 팔레트 (다크 표면용 스텝) */
  --surface-1:#1a1a19; --series-1:#3987e5; --series-2:#3ddc97;
  --text-primary:#ffffff; --text-secondary:#c3c2b7;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --sans:"Pretendard",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--tx);font-size:14px;line-height:1.5}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:none;filter:brightness(1.15)}
button{font-family:var(--sans);cursor:pointer}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2a3342;border-radius:5px}

/* 레이아웃: 좌측 사이드바 + 본문 */
.app{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:100vh}
.side{background:#0a0d13;border-right:1px solid var(--line);padding:16px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:9px;padding:8px 8px 2px}
.brand-mark{width:30px;height:30px;flex:0 0 auto;border-radius:8px;box-shadow:0 2px 6px rgba(242,96,58,.35)}
.brand-wm{display:flex;flex-direction:column;line-height:1.05}
.brand-wm b{font-weight:800;font-size:16px;color:var(--tx);letter-spacing:.2px}
.brand-wm span{font-size:10.5px;font-weight:700;color:var(--accent);letter-spacing:3px}
.brandsub{font-size:10.5px;color:var(--dim);font-family:var(--mono);padding:4px 8px 14px 10px}
.newbtn{display:block;text-align:center;width:100%;margin:2px 0 12px;background:var(--accent);border:0;color:#210b04;border-radius:9px;padding:11px;font-size:13px;font-weight:800}
.newbtn:hover{filter:brightness(1.1)}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:var(--mut);font-weight:600;font-size:13.5px;margin-bottom:2px;transition:.12s}
.nav a:hover{background:#131b28;color:var(--tx)}
.nav a.on{background:var(--accent-dk);color:var(--accent)}
.nav a .ic{width:17px;text-align:center;font-size:14px}
.nav a .ct{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dim)}
.nav .navgap{height:1px;background:var(--line);margin:10px 11px}
.side .st{margin-top:14px;padding:10px 8px;border-top:1px solid var(--line);font-size:10.5px;color:var(--dim);font-family:var(--mono);line-height:1.7}
.side .st .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--accent)}

main{padding:22px 26px 60px;min-width:0}
.head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.head h1{font-size:20px;margin:0;font-weight:800}
.head .sub{color:var(--mut);font-size:13px}
.sub{color:var(--mut);font-weight:500;font-size:12px;margin-left:6px}
.muted{color:var(--mut)} .dim{color:var(--dim)} .small{font-size:12px}
.empty{color:var(--dim);padding:12px 0}

.card{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.card h2{font-size:14px;margin:0 0 12px;font-weight:800;display:flex;align-items:center;gap:8px}
.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px}

/* KPI 타일 */
.tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-bottom:14px}
.tile{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:13px 15px}
.tile .lb{font-size:11.5px;color:var(--mut);font-weight:600}
.tile .vl{font-size:23px;font-weight:800;font-family:var(--mono);margin-top:4px;letter-spacing:-.5px}
.tile.accent{border-color:#ff7a5966}
.tile.accent .vl{color:var(--accent)}

/* 차트 */
.viz-root{color-scheme:dark}
.chart{width:100%;height:auto;display:block}
.bar{fill:var(--series-1)} .bar2{fill:var(--series-2)}
.hoverable:hover{opacity:.8}
.axis{fill:var(--text-secondary);font-size:11px}
.dlabel{fill:var(--text-primary);font-size:11px;font-weight:600}
.baseline{stroke:var(--line);stroke-width:1}
.legend{display:flex;gap:14px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}
.legend .sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.legend .s1{background:var(--series-1)} .legend .s5{background:var(--series-2)}
.tooltip{position:fixed;z-index:50;background:#0a0d13;border:1px solid var(--line);color:var(--tx);font-size:12px;padding:6px 10px;border-radius:6px;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.5)}

/* 테이블 */
table{width:100%;border-collapse:collapse;font-size:12.8px}
th{text-align:left;color:var(--mut);font-weight:700;font-size:11px;padding:7px 9px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px 9px;border-bottom:1px solid #1a2029;vertical-align:top}
tr:hover td{background:#141a24}
table.list td{border-bottom:1px solid #1a2029;word-break:keep-all}
table.list .rowname{white-space:nowrap}
.tablecard{padding:0;overflow-x:auto}
.tablecard table td,.tablecard table th{padding:9px 12px;white-space:nowrap}
.rowname{font-weight:700;color:var(--tx)}
tr:hover .rowname{color:var(--accent)}
.date{color:var(--mut);white-space:nowrap;font-family:var(--mono);font-size:12px}
.date.overdue,.dc-follow.overdue{color:var(--red);font-weight:700}
.ellip{max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r{text-align:right}

/* 뱃지/필/태그 */
.pill{display:inline-block;font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:10px;border:1px solid var(--line);color:var(--mut);white-space:nowrap}
.pill.stage{border-color:currentColor}
.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:9px;background:#1e2634;color:var(--mut);white-space:nowrap}
.badge.ok{background:#2a1510;color:var(--accent)}
.badge.warn{background:#2a1f12;color:var(--amber)}
.badge.bad{background:#2a1418;color:var(--red)}
.badge.hub{background:#241a2e;color:var(--purple)}
.badge.hc{background:#12203a;color:var(--slate)}
.badge.dmb{background:#2a1510;color:var(--accent);font-weight:700}
.badge.type{background:var(--panel);color:var(--tx)}
.badge.small{font-size:10.5px;padding:1px 6px}
.tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:5px;background:#1e2634;color:var(--mut);margin-right:3px}

/* 탭/필터 */
.typetabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.typetabs a{padding:7px 14px;border:1px solid var(--line);border-radius:18px;background:var(--panel2);color:var(--mut);font-weight:600;font-size:13px}
.typetabs a.on{background:var(--accent-dk);border-color:#ff7a5966;color:var(--accent)}
.filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.filters input,.filters select{border:1px solid var(--line);border-radius:8px;padding:8px 11px;background:var(--sub);color:var(--tx);font-size:13px;font-family:var(--sans)}
.filters input[name=q]{width:320px} /* B8: 검색이 주인공 — 컨택 원장·고객 검색 폭 확대 */
.filters button{background:var(--accent);border:0;color:#210b04;border-radius:8px;padding:8px 18px;font-weight:700}
.filters .ck{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--mut);cursor:pointer}
.pager{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.pager a,.pager .on{padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);font-family:var(--mono);font-size:12px;color:var(--mut)}
.pager .on{background:var(--accent-dk);color:var(--accent);border-color:#ff7a5966}

/* 대시보드 파이프 요약 */
.pipes{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.pipe-title{font-weight:800;color:var(--tx);display:block;margin-bottom:8px;font-size:13px}
.pipe-title:hover{color:var(--accent)}
.stagebar{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;border-radius:6px;background:var(--panel);margin-bottom:4px;font-size:12px;border-left:3px solid var(--dim)}
.stagename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px;color:var(--mut)}
.stagecount{font-weight:700;font-family:var(--mono);color:var(--tx)}

/* 상세 3단 */
.pagehead h1{font-size:20px;margin:6px 0 4px;font-weight:800}
.detail3{display:grid;grid-template-columns:300px minmax(0,1fr) 320px;gap:14px;align-items:start}
.kv{margin:0;display:grid;grid-template-columns:92px 1fr;gap:5px 10px;font-size:13px}
.kv dt{color:var(--dim);font-size:11.5px;padding-top:2px}
.kv dd{margin:0}
.contact{padding:8px 0;border-top:1px solid #1a2029}
.contact:first-of-type{border-top:none}
.contact .cname{font-weight:600}
.contact.dm .cname{font-weight:800}
.dealrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #1a2029}
.dealrow:first-of-type{border-top:none}
.dealname{flex:1;font-weight:700;font-size:13px}
.timeline{max-height:720px;overflow-y:auto}
.tl-item{border-left:2px solid var(--line);padding:0 0 16px 14px;margin-left:4px;position:relative}
.tl-item::before{content:'';position:absolute;left:-5px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.tl-date{font-weight:700;color:var(--mut);margin-bottom:4px;font-family:var(--mono);font-size:12px}
.tl-body{white-space:pre-wrap;line-height:1.55;color:var(--tx);font-size:13px}

/* 칸반 — 카드 좌측 보더 = 단계 색 (참고 UI 패턴) */
.board{display:flex;gap:11px;overflow-x:auto;align-items:flex-start;padding-bottom:20px}
.boardcol{min-width:210px;width:210px;background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:10px;flex-shrink:0}
.colhead{font-weight:700;font-size:12px;margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}
.colcount{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.cards{display:flex;flex-direction:column;gap:7px;max-height:70vh;overflow-y:auto}
.dealcard{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--dim);border-radius:8px;padding:9px 10px;color:var(--tx);display:block;transition:.12s}
.dealcard:hover{border-color:var(--accent);transform:translateY(-1px);filter:none}
.dc-name{font-weight:700;font-size:12.5px;margin-bottom:3px;line-height:1.35}
.dc-meta{display:flex;gap:8px;color:var(--dim);font-size:11px;font-family:var(--mono)}
.dc-meta .owner{color:var(--mut)}
.dc-follow{font-size:11px;color:var(--mut);margin-top:3px;font-family:var(--mono)}
.dc-amount{font-size:11.5px;color:var(--accent);font-weight:700;margin-top:3px;font-family:var(--mono)}
.more{padding:6px}

/* 위클리 */
.wkcopy{width:100%;min-height:280px;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:9px;padding:12px;font-family:var(--mono);font-size:12px;line-height:1.7;resize:vertical}
.copybtn{background:var(--accent);border:0;color:#210b04;border-radius:8px;padding:9px 18px;font-weight:800;font-size:13px;margin-top:8px}

@media(max-width:1200px){.tiles{grid-template-columns:repeat(3,1fr)}.pipes{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.detail3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.app{grid-template-columns:1fr}.side{position:static;height:auto}}

/* ── v0.3: 쓰기 UI ───────────────────────────── */
.repsel{margin:0 0 8px}
.repsel select{width:100%;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:8px 10px;font-size:13px;font-family:var(--sans)}

.modal-ov{position:fixed;inset:0;background:#000c;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:60px 20px 20px}
.modal-ov[hidden]{display:none}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;max-width:560px;width:100%;max-height:88vh;overflow:auto}
.modal h3{margin:0 0 3px;font-size:17px}
.modal .msub{color:var(--dim);font-size:11.5px;font-family:var(--mono);margin-bottom:14px}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal label{font-size:11.5px;color:var(--mut);font-weight:700;display:block;margin-top:2px}
.modal input,.modal select,.modal textarea{width:100%;margin-top:5px;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:9px 11px;font-family:var(--sans);font-size:13px}
.modal textarea{resize:vertical}
.mact{display:flex;gap:9px;justify-content:flex-end;margin-top:16px}
.mact button{border-radius:8px;padding:10px 20px;font-weight:700;font-size:13px;border:1px solid var(--line);background:transparent;color:var(--mut)}
button.save{background:var(--accent);color:#210b04;border:0;border-radius:8px;font-weight:800;cursor:pointer}
.mact .save{padding:10px 22px}

.ac-wrap{position:relative}
.ac-list{position:absolute;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;z-index:70;max-height:260px;overflow:auto;box-shadow:0 10px 30px -8px #000}
.ac-item{padding:8px 12px;cursor:pointer;font-size:13px;display:flex;justify-content:space-between;gap:10px}
.ac-item:hover{background:var(--accent-dk)}
.ac-item b{font-weight:700}

.quickadd{display:flex;gap:7px;margin-bottom:14px;flex-wrap:wrap}
.quickadd select,.quickadd input{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:8px 10px;font-size:13px;font-family:var(--sans)}
.quickadd .qa-body{flex:1;min-width:220px}
.quickadd .save{padding:8px 18px;font-size:13px}

.stagesel{background:var(--sub);border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700;font-family:var(--sans);max-width:150px}
.minibtn{background:transparent;border:1px solid var(--line);color:var(--mut);border-radius:7px;padding:3px 10px;font-size:11.5px;font-weight:700}
.minibtn:hover{border-color:var(--accent);color:var(--accent)}
.shist{margin-top:10px;padding-top:8px;border-top:1px solid #1a2029;line-height:1.8}

.addct{margin-top:10px}
.addct summary{color:var(--dim);font-size:12px;cursor:pointer}
.addct summary:hover{color:var(--accent)}
.addctform{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.addctform input{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:7px 10px;font-size:12.5px}
.addctform .save{padding:7px;font-size:12.5px}
.ck{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--mut);cursor:pointer}
.ck input{width:auto}

.minetog{display:inline-flex;gap:4px;background:var(--sub);border:1px solid var(--line);border-radius:9px;padding:3px;vertical-align:middle}
.minetog a{padding:5px 12px;border-radius:6px;font-size:12px;font-weight:700;color:var(--mut)}
.minetog a.on{background:var(--accent-dk);color:var(--accent)}

/* ── 레이아웃 깨짐 수정: 그리드 자식이 내용폭 이하로 줄어들 수 있게, 넓은 표는 카드 안에서만 스크롤 ── */
.grid2>*,.detail3>*,.pipes>*,.pipe{min-width:0}
.card{overflow-x:auto}
.ellip{max-width:340px}
.col-mid,.col-left,.col-right{min-width:0}
main{overflow-x:hidden}
.stagebar .stagename{min-width:0}

/* ── v0.4: 목표 화면 (참고 SFA 위클리 목표 패턴) ── */
.wkrow{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin-bottom:4px}
.wkm{flex:1;min-width:180px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:var(--panel2)}
.wkm.cur{border-color:#ff7a5966}
.wkm .lb{font-size:11.5px;color:var(--mut);font-weight:700}
.wkm .vl{font-size:21px;font-weight:800;font-family:var(--mono);margin-top:4px;letter-spacing:-.5px}
.wkm .dl{font-size:11px;color:var(--dim);font-family:var(--mono);margin-top:3px}
.wkrate{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap;padding:1px 7px;border-radius:6px;background:var(--amber);color:#1c1405;font-weight:700;font-size:12px;line-height:1.5}
.wkrate.ok{background:var(--accent);color:#210b04}
.tgform{display:flex;gap:5px;margin-top:9px}
.tgform input{width:100%;min-width:0;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:5px 8px;font-size:12px;font-family:var(--mono)}
.econ-in{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:4px 7px;font-size:12px;font-family:var(--mono);width:90px}
.econ-in.r{text-align:right}
.econrow{display:flex;gap:6px;align-items:center;padding:4px 0 8px;border-bottom:1px solid #1a2029;flex-wrap:wrap;font-size:12px;color:var(--dim)}
.econrow:last-child{border-bottom:none}

/* ── v0.5: 목표 재설계 (주간회의 구조) ── */
.conclusion{display:flex;gap:12px;align-items:flex-start;background:var(--panel2);border:1px solid #ff7a5940;border-left:3px solid var(--accent);border-radius:11px;padding:14px 16px;margin-bottom:14px;line-height:1.65;font-size:13.5px}
.conclusion .cicon{font-size:18px}
.conclusion .up{color:var(--accent)} .conclusion .down{color:var(--amber)} .conclusion .warn{color:var(--amber)}
.goaltable{width:100%;border-collapse:collapse}
.goaltable th{font-size:11px}
.goaltable td{padding:10px 9px;vertical-align:middle}
.goaltable .trow td{background:#181f2e}
.gbar{height:8px;background:#0d1219;border-radius:4px;overflow:hidden;min-width:120px}
.gbar i{display:block;height:100%;border-radius:4px;background:var(--amber)}
.gbar i.ok{background:var(--accent)}
.statusrow{display:flex;gap:10px;flex-wrap:wrap}
.statuscell{flex:1;min-width:76px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 10px;text-align:center}
.statuscell .sc-n{font-size:20px;font-weight:800}
.statuscell .sc-l{font-size:11px;color:var(--mut);margin-top:2px}
.yeargoal{padding:10px 0;border-top:1px solid #1a2029}
.yeargoal:first-of-type{border-top:none;padding-top:2px}
.yg-head{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.yg-head .mono{margin-left:auto;font-size:13px}
.gedit{margin-top:8px}
.gedit summary{color:var(--dim);font-size:11.5px;cursor:pointer}
.gedit summary:hover{color:var(--accent)}
.geditform{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.geditform input{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:6px 9px;font-size:12px;font-family:var(--mono);min-width:0;flex:1}
.glgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.accent-t{color:var(--accent)}
@media(max-width:1100px){.glgrid{grid-template-columns:1fr}}
.goaltable td.r,.goaltable th.r{white-space:nowrap}
.goaltable td:first-child{white-space:nowrap}

/* ── v0.6: 큐·위젯 ── */
.goalstrip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.gs-item{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:12.5px;color:var(--mut)}
.gs-item:hover{border-color:var(--accent);filter:none}
.gs-item .gs-l{font-weight:600}
.wkrate.small{font-size:10.5px;padding:0 6px}
.why{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:8px;background:#1e2634;color:var(--mut);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.why.w1{background:#2a1418;color:var(--red)}
.why.w2{background:#2a1f12;color:var(--amber)}
.why.w3{background:#2a1510;color:var(--accent)}
.why.w4{background:#12203a;color:var(--slate)}
.callcard{border-left:3px solid var(--accent)}
.callcard .kv{grid-template-columns:110px 1fr}
.quickadd label input{margin-left:2px}

/* 국행카 단계 흐름 */
.funnel{width:100%}
.funnel td{padding:8px 9px;border-bottom:1px solid #1a2029}
.funnel .fn-label{font-size:13px}
.funnel .fn-n{font-size:16px;font-weight:800;white-space:nowrap}
.funnel .fn-strong td{background:#181f2e}
.funnel .fn-strong .fn-label{font-weight:800}
.funnel .fn-minor td{color:var(--dim)}
.funnel .fn-minor .fn-n{font-size:13px;font-weight:600;color:var(--amber)}
.chip{display:inline-block;font-size:10px;padding:1px 6px;border-radius:5px;background:#141a24;color:#3a4454;margin-right:2px;border:1px solid var(--line)}
.chip.on{background:#12203a;color:var(--slate);border-color:#7fa8ff44}

.mdaform label{font-size:11.5px;color:var(--mut);font-weight:700;display:block;margin-bottom:5px}
.mdaform input[type=file]{width:100%;background:var(--sub);border:1px dashed var(--line);color:var(--mut);border-radius:9px;padding:18px 12px;font-size:13px}
.mdaform input[type=month],.mdaform select{width:100%;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:9px 11px;font-size:13px;font-family:var(--sans)}

/* ── B1-me 배치: 내 뷰 큐·활동 모달 퀵칩 ── */
.why.w5{background:#182231;color:var(--mut)}          /* 우선순위 '높음' 사유 배지 */
a.telno{color:var(--tx);text-decoration:none;white-space:nowrap}
a.telno:hover{color:var(--accent)}
.fu-chips{display:flex;gap:6px;margin-top:6px}
.fu-chips .chip{cursor:pointer;background:#141a24;color:var(--mut);border:1px solid var(--line);font-size:11px;padding:2px 9px;border-radius:6px}
.fu-chips .chip:hover{border-color:var(--accent);color:var(--accent)}

/* ── B2-detail 배치: 상세 화면·모바일·단계 프롬프트 ── */
/* 방치 밴드 (PAP elapsedBand 이식: 정상/주의/정체/방치 — 녹색 금지, 정체 amber·방치 red) */
.band{display:inline-block;font-family:var(--mono);font-size:10px;padding:1px 7px;border-radius:9px;border:1px solid var(--line);color:var(--dim);white-space:nowrap;vertical-align:middle}
.band.b3{color:var(--amber);border-color:#f5a62355;background:#2a1f12}
.band.b4{color:var(--red);border-color:#ff5c5c55;background:#2a1418}
/* 통화 전 30초 — 그리드 위 풀폭 스트립: 넓은 화면에선 2열로 압축 */
.callstrip{border-left:3px solid var(--accent)}
@media(min-width:1101px){.callstrip .kv{grid-template-columns:110px 1fr 120px 1fr;column-gap:22px}}
.warnrate{color:var(--amber);font-weight:700}
.drop{color:var(--red);font-weight:800}
/* 단계 변경 미니 프롬프트 (재방문예정→날짜 / 승→월액 / 패→사유) */
.stageprompt{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0 8px;padding:8px 10px;border:1px solid #ff7a5966;border-radius:8px;background:var(--panel);font-size:12px;color:var(--mut)}
.stageprompt label{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--mut)}
.stageprompt input,.stageprompt select{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:4px 8px;font-size:12px;font-family:var(--sans)}
.stageprompt .sp-note{min-width:150px;flex:1}
/* 전화번호 — 외근 폰에서 탭 투 콜, 링크 티는 절제 */
a.telno{color:var(--tx);border-bottom:1px dotted var(--dim)}
a.telno:hover{color:var(--accent)}
/* 모바일(≤1100px): 사이드바를 가로 칩 내비로 압축 — '통째 스크롤' 제거 */
@media(max-width:1100px){
  .side{height:auto;padding:12px}
  .nav{display:flex;overflow-x:auto;gap:4px;padding-bottom:6px}
  .nav a{white-space:nowrap;padding:7px 10px;margin-bottom:0}
  .nav .navgap{display:none}
  .side .st{display:none}
  .callstrip .kv{grid-template-columns:96px 1fr}
}
/* ── B3 국행카: 8타일·제공률 pill 3단계·액션 스트립·업로드 (happycard) ── */
.tiles.t8{grid-template-columns:repeat(4,1fr)}
.tile.warn{border-color:#f5a62355}
.tile.warn .vl{color:var(--amber)}
.tile.bad{border-color:#ff5c5c55}
.tile.bad .vl{color:var(--red)}
.tile.ok{border-color:#ff7a5966}
.tile.ok .vl{color:var(--accent)}
.pill.conv-ok{color:var(--accent);border-color:currentColor}
.pill.conv-low{color:var(--amber);border-color:currentColor}
.pill.conv-bad{color:var(--red);border-color:currentColor}
.pill.conv-zero{background:#2a1f12;color:var(--amber);border-color:var(--amber)} /* DB≥5·발급 0 — 즉시 개입 */
.hcstrip{display:flex;gap:8px;align-items:center;background:#2a1f12;border:1px solid #f5a62344;border-radius:9px;padding:8px 12px;margin-bottom:12px;font-size:12.5px;color:var(--amber);flex-wrap:wrap}
.hcstrip a{color:var(--amber);text-decoration:underline}
.hc-upload{display:flex;gap:6px;align-items:center;margin-top:8px}
.hc-upload input[type=file]{font-size:11.5px;color:var(--mut);max-width:240px}
.hcrow-today td{background:#181f2e}
.hc-assign{display:flex;gap:6px;align-items:center}
.hc-assign .ha-q{background:var(--sub, var(--panel2));border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:4px 8px;font-size:12px;width:100%}
@media(max-width:1200px){.tiles.t8{grid-template-columns:repeat(2,1fr)}}
/* ── B4 위클리: 게시 피드백·버튼 위계·발송 이력 (weekly) ── */
.postedbar{background:#241a14;border:1px solid var(--accent);border-radius:9px;padding:9px 14px;margin-bottom:12px;font-size:13px;color:var(--accent)}
.copybtn.ghost{background:transparent;border:1px solid var(--accent);color:var(--accent)} /* 로컬 복사(경미)는 외곽선, 채널 발송(중대)만 solid */
tr.postedrow td{background:#241a14} /* 방금 게시한 outbox 행 하이라이트 */
.xlsbtn{border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--mut);font-size:12px;text-decoration:none;margin-left:6px}
.xlsbtn:hover{border-color:var(--accent);color:var(--accent)}
.goaltable tr.notrow td{border-top:0}
details > summary{cursor:pointer;list-style:none}
details > summary::-webkit-details-marker{display:none}
details > summary h2 .sub{color:var(--mut)}

/* ── B5-goals: 목표 화면 입력 마찰·시각 위계 ── */
.wkrate.bad{background:var(--red);color:#fff}            /* <50% — amber와 구분되는 위험 단계 */
.gbar i.bad{background:var(--red)}
.wkrate .over{font-size:9.5px;font-weight:600;opacity:.8}
.glgrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))} /* 목표 설정 5칸 자연 배치 */
.gedit summary{font-size:12.5px;color:var(--mut)}         /* 수정 진입점 발견성 ↑ */
.econ-in::placeholder{color:#4a5568}                      /* 단계 기본(시드)값은 값과 확실히 구분 */
tr.unsched td:first-child{box-shadow:inset 3px 0 0 var(--amber)} /* 달성시기 미입력 행 표시 */
.chip{background:none;border:1px solid var(--line);color:var(--mut);border-radius:999px;padding:2px 9px;font-size:11px;cursor:pointer;margin-left:4px}
.chip:hover{color:var(--accent);border-color:var(--accent)}
.ge-tgl{margin-left:6px;padding:1px 7px;font-size:11px}

/* ── B6-board: 대시보드 우선순위·타일 링크 + 칸반 인라인 단계변경·정보 밀도 ── */
a.conclusion{display:flex}                                 /* 오늘 할 일 배너를 링크로 */
a.conclusion:hover{border-color:var(--accent)}
a.tile{display:block;color:inherit}                        /* KPI 타일 전부 클릭 가능 */
a.tile:hover{border-color:var(--accent)}
.wkrate.na{background:var(--panel);color:var(--dim);border:1px solid var(--line)} /* 목표 미설정/집계 전 — 미달과 구분 */
.gs-amt{font-family:var(--mono);font-size:10.5px;color:var(--dim)} /* goalstrip 실측/목표 금액 */
.gs-item .warn-t{color:var(--amber)}
.overdue-line{margin-top:8px;font-size:12px}
.overdue-line a{color:var(--red);font-weight:700}
a.stagebar{color:inherit}                                  /* 파이프라인 현황 단계바 → 해당 컬럼 링크 */
a.stagebar:hover{background:var(--panel2);border-color:var(--line)}
.stagefilter{margin-bottom:10px;font-size:12.5px;color:var(--mut)}
.stagefilter a{color:var(--accent)}
.colsum{font-family:var(--mono);font-size:10.5px;color:var(--accent);margin-left:3px} /* 컬럼 금액 합계 */
.boardcol.closed{min-width:120px;width:120px;opacity:.55}  /* 수주·실패·제외 모수 컬럼 접기 */
.boardcol.closed .dc-meta,.boardcol.closed .dc-amount,.boardcol.closed .dc-stageform,.boardcol.closed .dc-days{display:none}
.dc-name a{color:var(--tx)}
.dc-name a:hover{color:var(--accent)}
.dc-days{font-size:10.5px;color:var(--dim);font-family:var(--mono);margin-top:2px} /* 단계 N일째 */
.dc-days.warn{color:var(--amber)}
.dc-stageform{margin-top:6px}
.dc-stageform select{width:100%;font-size:11px;background:var(--sub);border:1px solid var(--line);color:var(--mut);border-radius:5px;padding:3px 5px}
.more a{color:var(--mut);text-decoration:underline}
.more a:hover{color:var(--accent)}

/* ── B7-ops: 광고 발송 기록·MDA 별칭/오차 구간 ── */
.sentform{display:inline}
.sentbtn{background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:7px;padding:2px 8px;font-size:11px;font-weight:700;cursor:pointer;margin-left:4px}
.sentbtn:hover{background:var(--accent);color:#210b04}
.aliasform{display:inline-flex;gap:4px;align-items:center;margin-right:6px}
.aliasform input{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:3px 8px;font-size:12px;width:170px}
.aliasform input:focus{border-color:var(--accent);outline:none}

/* ── B8-lists: 전역 검색·컨택 tel·타임라인 날짜 그룹·동의율 매트릭스 ── */
.gsearch{margin:0 0 8px}
.gsearch input{width:100%;background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:8px 10px;font-size:12.5px;font-family:var(--sans)}
.gsearch input:focus{border-color:var(--accent);outline:none}
a.mono{color:var(--tx)}                          /* 전화번호 tel: 링크 — 링크 티 안 나게 */
tr:hover a.mono{color:var(--accent)}
.tl-day{font-family:var(--mono);font-size:11px;color:var(--accent);border-bottom:1px solid var(--line);padding:10px 0 4px;margin-bottom:4px;font-weight:700} /* 활동 로그 날짜 그룹 헤더 */
.pager .dim{padding:5px 4px}                     /* 축약 페이저 '…' */

/* ── B9-outreach: 개척 콜드리스트 — 다음 액션 인라인 폼 ── */
.nx-form{display:inline-flex;gap:5px;align-items:center}
.nx-form input[type=text]{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:3px 8px;font-size:12px;width:170px}
.nx-form input[type=date]{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:3px 6px;font-size:12px}
.nx-form input:focus{border-color:var(--accent);outline:none}
.nx-form input.nx-over{border-color:var(--red);color:var(--red)}   /* 기한 경과 — red, 녹색 금지 준수 */
.nx-owner{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:3px 6px;font-size:12px}

/* ── 국행카 v2 (2026-09-22 제리 프레임): 핵심 3지표 히어로 + 점검 스트립 ── */
.hero3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px 14px}
.kpi-ok{border-color:#ff7a5966;box-shadow:inset 0 0 0 1px #ff7a5922}
.kpi-warn{border-color:#f5a62355}
.klb{font-size:12px;color:var(--mut);letter-spacing:.02em;margin-bottom:6px}
.klb .dim{font-size:11px}
.kval{font-family:var(--mono);font-size:42px;font-weight:700;line-height:1.05;color:var(--tx)}
.kpi-ok .kval{color:var(--accent)}
.kunit{font-size:20px;color:var(--mut);margin-left:2px}
.ksub{font-size:12px;color:var(--mut);margin-top:6px}
.kgbar{margin-top:8px}
.checkstrip{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;background:var(--panel);
  border:1px dashed var(--line);border-radius:10px;padding:9px 16px;margin-bottom:14px;font-size:12.5px;color:var(--mut)}
.cs-title{color:var(--tx);font-weight:600;font-size:12px}
.cs-item b{color:var(--tx);font-family:var(--mono);font-weight:600}
.cs-item a{color:inherit}
@media(max-width:1100px){.hero3{grid-template-columns:minmax(0,1fr)}}

/* ── 슬랙 임포트 검수 + 접촉이력 분류 태그 (v0.18) ── */
.octag{display:inline-block;font-size:10px;padding:0 6px;border-radius:8px;border:1px solid;color:var(--tx);line-height:16px;vertical-align:middle}
.implist{display:flex;flex-direction:column;gap:10px}
.improw{padding:12px 16px}
.imp-meta{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.imp-body{color:var(--tx);font-size:13px;white-space:pre-wrap;margin-bottom:6px;max-height:80px;overflow:auto}
.imp-sig{display:flex;gap:6px;margin-bottom:8px}
.imp-fields{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end}
.imp-fields label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mut)}
.imp-fields select,.imp-fields input{background:var(--bg);border:1px solid var(--line);color:var(--tx);border-radius:6px;padding:4px 8px;font-size:12px}
.imp-fields .hosp-fix{width:130px}

/* ── 접촉이력 출처 배지 (v0.19) ── */
.srcbadge{font-size:10px;padding:0 6px;border:1px solid var(--accent);color:var(--accent);border-radius:8px;line-height:16px;text-decoration:none}
.srcbadge.dim{border-color:var(--line);color:var(--mut)}


/* ── 단계 조정 제안 (v0.20) ── */
tr.sr-advance td{background:rgba(255,122,89,0.04)}
tr.sr-lost td{background:rgba(255,92,92,0.05)}
tr.sr-back td{opacity:0.82}

/* ── 국행카 정산·샴푸 (v0.21) ── */
.hc-links{display:inline-flex;gap:6px;margin-right:8px}
.shampooform{display:flex;gap:4px}
.shampooform input{background:var(--bg);border:1px solid var(--line);color:var(--tx);border-radius:6px;padding:3px 8px;font-size:12px}


/* ── 로그인 화면 (v0.21) ── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:36px 40px;width:340px}
.login-card label{display:block;font-size:12px;color:var(--mut);margin-bottom:4px}
.login-card input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:10px 12px;font-size:14px;box-sizing:border-box}

/* ══ 전역 UX 이식 (v0.22): toast·정렬·폴드·hover 통일 ══ */
#toasthost{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:var(--accent);color:#1a0f0a;font-size:13px;font-weight:600;padding:10px 18px;border-radius:20px;box-shadow:0 6px 24px #0008;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;max-width:80vw}
.toast.show{opacity:1;transform:translateY(0)}
.toast.bad{background:var(--red);color:#fff}
/* 정렬 가능한 헤더 */
th.th-sort{cursor:pointer;user-select:none;transition:color .12s}
th.th-sort:hover{color:var(--tx)}
th.th-sort::after{content:" ⇅";opacity:.35;font-size:10px}
th.th-sort.sorted[data-dir=asc]::after{content:" ▲";opacity:.9;color:var(--accent)}
th.th-sort.sorted[data-dir=desc]::after{content:" ▼";opacity:.9;color:var(--accent)}
/* 더보기/접기 폴드 버튼 */
.foldbtn{display:inline-block;margin-top:6px;background:none;border:none;color:var(--mut);font-size:12px;cursor:pointer;padding:2px 0}
.foldbtn:hover{color:var(--accent)}
/* hover 트랜지션 통일 — 카드/행 살짝 반응 (참고 SFA 0.12s) */
.card{transition:border-color .12s}
table.list tr,tbody tr{transition:background .12s}
.rowname{transition:color .12s}
.minibtn,.save,.copybtn,.xlsbtn{transition:background .12s,border-color .12s,color .12s,opacity .12s}
button[disabled]{opacity:.55;cursor:default}

/* ══ 접촉이력 편집칸 — 미색 종이 (v0.24) ══ */
/* 다크 앱 속 밝은 '종이' 입력 — 미색 바탕·어두운 글씨, 여러 줄·기호 그대로 */
textarea.paper{
  background:#f7f4ec;color:#1c1a16;border:1px solid #d8d2c4;border-radius:10px;
  padding:12px 14px;font-size:14px;line-height:1.6;font-family:var(--sans);
  white-space:pre-wrap;tab-size:2;resize:vertical;min-height:220px;width:100%;box-sizing:border-box;
}
textarea.paper:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #ff7a5933}
textarea.paper::placeholder{color:#9a9384}
/* quickadd에서 종이 입력은 한 줄 전체 차지 */
.quickadd .qa-body{flex:1 1 100%;min-width:0;order:5}

/* ══ 대시보드 재설계 (v0.24) ══ */
.hero-goal{display:flex;align-items:center;gap:28px;padding:20px 24px}
.hg-main{flex:1;min-width:0}
.hg-lb{font-size:12px;color:var(--mut);margin-bottom:6px}
.hg-val .mono{font-size:34px;font-weight:800;color:var(--tx);line-height:1}
.hg-den{font-size:18px;color:var(--mut);font-weight:600}
.hg-bar{margin-top:12px;max-width:520px}
.hg-side{text-align:right;min-width:150px}
.hg-rate{font-family:var(--mono);font-size:30px;font-weight:800;color:var(--mut)}
.hg-rate.ok{color:var(--accent)}
.hg-rate span{font-size:16px}
.hg-gap{font-size:12px;color:var(--amber);margin-top:2px}
.hg-year{font-size:11px;margin-top:6px}
/* 사업별 목표 표 정렬 */
.goaltable td{padding:7px 8px;vertical-align:middle}
.goaltable tr+tr td{border-top:1px solid var(--line)}
/* 국행카 핵심 3지표 */
.hc-dash{border-color:#ff7a5940}
.hc3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px}
.hc3-i{background:var(--sub);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.hc3-i.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px #ff7a5922}
.hc3-l{font-size:11.5px;color:var(--mut);margin-bottom:6px}
.hc3-v{font-size:30px;font-weight:800;color:var(--tx);line-height:1}
.hc3-i.on .hc3-v{color:var(--accent)}
.hc3-v .pct{font-size:15px;color:var(--mut)}
.hc3-den{font-size:11px;margin-top:4px}

/* 전체 팀 뷰 담당자 바 (v0.24) */
.repbar{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.repbar .copybtn{padding:4px 12px}

/* 종료 프로젝트 배지 (v0.25) */
.badge.closed{background:transparent;border:1px solid var(--line);color:var(--mut);font-size:10px;font-weight:600}

/* ══ 월별 축약 스트립 + 기간별 한눈에 (v0.25) ══ */
.mstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.ms-cell{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px;text-decoration:none;display:block}
.ms-cell.now{border-color:var(--accent);box-shadow:inset 0 0 0 1px #ff7a5922}
.ms-m{font-size:12px;color:var(--mut);margin-bottom:5px}
.ms-tag{font-size:10px;background:var(--accent);color:#210b04;border-radius:5px;padding:0 5px;font-weight:700}
.ms-tag.dim{background:var(--line);color:var(--mut)}
.ms-v{font-size:18px;font-weight:800;color:var(--tx)}
.ms-den{font-size:12px;color:var(--mut);font-weight:600;margin-left:2px}
.ms-b{height:5px;background:var(--sub);border-radius:3px;overflow:hidden;margin:7px 0 5px}
.ms-b i{display:block;height:100%;background:var(--amber)}
.ms-b i.ok{background:var(--accent)}
.ms-r{font-size:11px}.ms-r .up{color:var(--accent)}.ms-r .down{color:var(--amber)}
/* 기간별 한눈에 */
.periodgrid{display:grid;grid-template-columns:1fr 300px;gap:16px}
.pg-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pg-m{background:var(--sub);border:1px solid var(--line);border-radius:9px;padding:9px 10px}
.pg-m.now{border-color:var(--accent)}
.pg-ml{font-size:11px;color:var(--mut);margin-bottom:4px}
.pg-mv{font-size:14px;font-weight:700;color:var(--tx)}
.pg-mr{margin-top:5px}
.pg-agg{display:flex;flex-direction:column;gap:8px}
.pg-box{background:var(--sub);border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.pg-bl{font-size:11.5px;color:var(--mut);margin-bottom:5px}
.pg-bv{font-size:17px;font-weight:800;color:var(--tx)}
.pg-br{margin-top:6px}
@media(max-width:1100px){.mstrip,.pg-months{grid-template-columns:repeat(2,minmax(0,1fr))}.periodgrid{grid-template-columns:1fr}}

/* 국행카 대시보드 미니 표 (v0.25) */
.hc-mini{width:100%;margin-top:10px;border-collapse:collapse;font-size:12px}
.hc-mini td{padding:5px 6px;border-top:1px solid var(--line);color:var(--mut)}
.hc-mini td.r{color:var(--tx)}
.hc-mini .mono{font-family:var(--mono)}

/* 위클리 원본 시트 링크 (v0.26) */
.sheetlinks{margin-top:10px;font-size:12px;color:var(--mut);display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.sheetlinks a{color:var(--accent);text-decoration:none}
.sheetlinks a:hover{text-decoration:underline}

/* 지난주 단계변동 내역 (v0.26) */
.movegrp{margin-bottom:14px}
.movegrp-h{font-weight:700;font-size:13px;color:var(--tx);border-left:3px solid var(--accent);padding-left:8px;margin-bottom:4px}

/* ══ 캘린더 (Google Calendar 스타일) v0.30 ══ */
.calhead{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:12px}
.calhead h1{margin:0}
.cal-nav{display:flex;align-items:center;gap:6px}
.cal-title{font-size:16px;font-weight:700;color:var(--tx);margin-left:8px}
.cal-viewtog{margin-left:auto}
.cal-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--mut);margin-bottom:10px}
.cal-legend .cl-i{display:flex;align-items:center;gap:5px}
.cal-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
/* 이벤트 칩 */
.cal-ev{display:block;background:var(--sub);border-left:3px solid var(--mut);border-radius:4px;padding:2px 6px;
  margin:2px 0;font-size:11.5px;text-decoration:none;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s}
.cal-ev:hover{background:var(--panel2)}
.cal-ev .ce-dot{display:none}
.cal-more{display:block;font-size:11px;color:var(--mut);padding:1px 6px;text-decoration:none}
.cal-more:hover{color:var(--accent)}
/* 월간 그리드 */
.cal-month{padding:0;overflow:hidden}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}
.cal-dow>div{padding:8px;text-align:center;font-size:12px;color:var(--mut);font-weight:600}
.cal-dow .we{color:var(--accent)}
.cal-wrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.cal-wrow:last-child{border-bottom:none}
.cal-cell{min-height:104px;border-right:1px solid var(--line);padding:4px 5px;overflow:hidden}
.cal-cell:last-child{border-right:none}
.cal-cell.out{background:#0a0d13}.cal-cell.out .cal-dn{color:var(--dim)}
.cal-cell.today{background:#ff7a590a}
.cal-dn{font-size:12px;color:var(--mut);cursor:pointer;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%}
.cal-cell.today .cal-dn{background:var(--accent);color:#210b04;font-weight:700}
.cal-dn:hover{background:var(--line)}
/* 주간 */
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0;overflow:hidden}
.cal-wcol{border-right:1px solid var(--line);min-height:340px}
.cal-wcol:last-child{border-right:none}
.cal-wcol.today{background:#ff7a590a}
.cal-wh{padding:8px;text-align:center;font-size:12px;color:var(--mut);border-bottom:1px solid var(--line)}
.cal-wh.we{color:var(--accent)}.cal-wh b{color:var(--tx);font-size:15px;margin-left:3px}
.cal-wbody{padding:5px;min-height:280px}
/* 일간 — 멤버별 레인 */
.cal-day{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:0;overflow:hidden}
.cal-lane{border-right:1px solid var(--line);min-height:300px}
.cal-lane:last-child{border-right:none}
.cal-lh{padding:9px 10px;font-size:13px;font-weight:700;color:var(--tx);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px}
.cal-lh i{width:10px;height:10px;border-radius:3px}
.cal-lbody{padding:6px}

/* ── 팀 피드백 (v0.31) ── */
.fab-fb{position:fixed;right:22px;bottom:22px;z-index:60;border:0;cursor:pointer;
  background:var(--accent);color:#210b04;font-weight:800;font-size:13.5px;
  padding:12px 18px;border-radius:999px;box-shadow:0 6px 20px rgba(242,96,58,.45);
  transition:transform .12s,box-shadow .12s}
.fab-fb:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(242,96,58,.55)}
.fb-modal{max-width:520px}
.fb-modal .fb-page{font-size:12px;font-weight:600;color:var(--dim)}
.fb-mood{display:flex;gap:8px;margin-top:6px}
.fb-mood button{flex:1;background:var(--sub);border:1px solid var(--line);
  color:var(--tx);border-radius:9px;padding:9px;font-size:13px;cursor:pointer;transition:.1s}
.fb-mood button:hover{border-color:var(--accent)}
.fb-mood button.on{background:var(--accent-dk);border-color:var(--accent);color:var(--accent);font-weight:700}
/* 피드 */
.fb-feed{display:flex;flex-direction:column;gap:12px}
.fb-card{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.fb-card.fb-new{border-left:3px solid var(--accent)}
.fb-card.fb-done{opacity:.6}
.fb-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px}
.fb-who b{font-size:13.5px;color:var(--tx)}
.fb-when{margin-left:auto;font-family:var(--mono);font-size:11px}
.fb-status{font-size:11px}
.fb-msg{margin:9px 0;color:var(--tx);white-space:pre-wrap;line-height:1.55;font-size:14px}
.fb-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fb-link{font-size:12px;color:var(--accent);font-family:var(--mono)}
.fb-actions{margin-left:auto;display:flex;gap:6px}
.fb-actions button{background:transparent;border:1px solid var(--line);color:var(--mut);
  border-radius:7px;padding:5px 10px;font-size:12px;cursor:pointer}
.fb-actions button.save{background:var(--accent);border-color:var(--accent);color:#210b04;font-weight:700}
.fb-actions button:disabled{opacity:.4;cursor:default}
.pagehead{margin-bottom:14px}
.pagehead h1{font-size:20px;margin:0 0 4px;font-weight:800}
.pagehead .ph-sub{color:var(--mut);font-size:13px}
.tabs{display:flex;gap:6px;margin:4px 0 14px}
.tabs a{padding:7px 14px;border-radius:8px;font-size:13px;color:var(--mut);background:var(--panel2)}
.tabs a.on{background:var(--accent-dk);color:var(--accent);font-weight:700}

/* 로그인 로고 락업 (v0.31) */
.login-brand{display:flex;align-items:center;gap:12px}
.login-mark{width:44px;height:44px;border-radius:11px;box-shadow:0 4px 12px rgba(242,96,58,.4)}
.login-wm{display:flex;flex-direction:column;line-height:1.1}
.login-wm b{font-size:24px;font-weight:800;color:var(--tx);letter-spacing:.3px}
.login-wm span{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:2px}

/* B1 배치 (v0.32) — 활동 수정·삭제 / 결정권자 인라인 / 컨택·병원 메모 / 타임라인 병원명 강조 */
/* #16 활동 로그 병원명 볼드+코랄 (이스턴) — 한눈에 병원 단위로 훑기 */
.timeline .rowname.hosp{color:var(--accent);font-weight:800}
.timeline .rowname.hosp:hover{text-decoration:underline}
/* #5 타임라인 각 항목 수정·삭제 (드웨인) */
.tl-actions{display:flex;align-items:center;gap:10px;margin-top:6px}
.tl-actions .tledit summary{color:var(--dim);font-size:11px;cursor:pointer;list-style:none}
.tl-actions .tledit summary:hover{color:var(--accent)}
.tl-actions .minibtn{padding:2px 8px;font-size:11px}
.tl-actions .minibtn.del:hover{border-color:var(--red);color:var(--red)}
.tleditform{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding:8px;background:var(--sub);border:1px solid var(--line);border-radius:8px}
.tleditform .row{display:flex;gap:6px;flex-wrap:wrap}
.tleditform select,.tleditform input,.tleditform textarea{background:var(--bg);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:6px 8px;font-size:12.5px;font-family:var(--sans)}
.tleditform textarea{width:100%;white-space:pre-wrap}
/* #9·#10 컨택 액션(결정권자 지정·메모) + 병원/컨택 메모 편집 */
.ctactions{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.ctactions .minibtn{padding:2px 8px;font-size:11px}
.ctmemo summary{color:var(--dim);font-size:11px;cursor:pointer;list-style:none}
.ctmemo summary:hover{color:var(--accent)}
.memoform{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.memoform textarea{background:var(--sub);border:1px solid var(--line);color:var(--tx);border-radius:7px;padding:7px 9px;font-size:12.5px;font-family:var(--sans);width:100%;resize:vertical}
.dmwarn summary{color:var(--tx);font-weight:700}
.dmwarn-link{color:var(--amber);font-size:11px;font-weight:700;white-space:nowrap}
.dmwarn-link:hover{text-decoration:underline}

/* B4 내 뷰 — 담당별 주력 사업 상단 배치 (드웨인 국행카 데일리 요약·진도율·방문예정) */
.card.primary{border-color:#ff7a5966;box-shadow:inset 3px 0 0 var(--accent)}
.kpirow{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 4px}
.kpirow .kpi{flex:1;min-width:150px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpirow .klabel{font-size:11.5px;color:var(--mut);margin-bottom:4px}
.kpirow .kval{font-size:22px;font-weight:800;font-family:var(--mono);line-height:1.1}
.prog{margin-top:14px}
.prog h3{margin:0 0 8px;font-size:13.5px}
.pbar{height:9px;background:var(--sub);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.pbar span{display:block;height:100%;background:var(--accent);border-radius:6px}
.primlist{margin:10px 0 0;padding-left:18px}
.primlist li{margin:4px 0}
.pipe.primary .pipe-title{color:var(--accent)}
.closed-fold summary{cursor:pointer;font-weight:700;font-size:14px;list-style:none}
.closed-fold summary::-webkit-details-marker{display:none}
.closed-fold summary::before{content:'▸ ';color:var(--dim)}
.closed-fold[open] summary::before{content:'▾ '}

/* B5 캘린더: 담당자별 필터 탭 (#12) — minetog 재사용, rep 색 도트 */
.cal-reptog{margin:0 0 12px}
.cal-reptog a{display:inline-flex;align-items:center;gap:6px}
.cal-reptog .cr-dot{width:9px;height:9px;border-radius:3px;display:inline-block}

/* B6 위클리(#13): 목표 표 행 폴드 — 클릭으로 월별/누적 상세 커튼 */
.foldgoal .foldsum{cursor:pointer}
.foldgoal .foldsum:hover{background:rgba(255,255,255,.03)}
.foldgoal .caret{display:inline-block;transition:transform .15s;color:var(--mut);font-size:11px}
.foldgoal .foldsum.open .caret{transform:rotate(90deg);color:var(--accent)}
.foldgoal .folddet td{padding-top:0;padding-bottom:8px}
.foldgoal .folddet .fdrow{font-size:12.5px;color:var(--mut);padding:2px 0}
.foldgoal .folddet .fdrow b{color:var(--fg)}

/* B6 파이프라인(#6): 국행카 운영 중 열의 실운영/미운영 분리 표기 */
.boardcol .colnote{font-size:11px;color:var(--mut);padding:2px 8px 4px}
.dealcard.notop{background:rgba(245,166,35,.06)}

/* B6 샴푸(#15): 자동 추정 토글 체크 */
.shampooform .autochk{font-size:11px;color:var(--mut);display:inline-flex;align-items:center;gap:2px;margin:0 2px}
.shampooform .autochk input{width:auto;margin:0}

/* ── v0.37 홈 카드 · 주제별 메뉴 · 거래처/프로젝트 탭 ── */
.nav .homebtn{font-weight:800;color:var(--tx)}
.nav .navsec{margin:12px 8px 4px;font-size:11px;font-weight:800;color:var(--accent);letter-spacing:.02em}
.nav .navall{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}
.nav .navall summary{cursor:pointer;color:var(--mut);font-size:11.5px;font-weight:700;padding:4px 8px;list-style:none}
.nav .navall summary::-webkit-details-marker{display:none}
.nav .navall summary::before{content:"▸ "}
.nav .navall[open] summary::before{content:"▾ "}
.homegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.homecard{display:flex;flex-direction:column;gap:6px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:18px 18px 16px;color:var(--tx);text-decoration:none;transition:border-color .12s,transform .12s}
.homecard:hover{border-color:var(--accent);transform:translateY(-2px)}
.homecard .hc-ic{font-size:28px;line-height:1}
.homecard .hc-t{font-size:16px;font-weight:800;margin-top:4px}
.homecard .hc-d{font-size:12.5px;color:var(--mut);line-height:1.45}
.homecard .hc-s{font-size:13px;font-weight:700;color:var(--accent);margin-top:6px}
.homecard .hc-l{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.homecard .hc-l span{font-size:10.5px;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.homemore{margin-top:18px;font-size:12px;color:var(--mut)}
.homemore a{color:var(--mut)}
.projtabs{flex-wrap:wrap}
.projtabs a .ct{font-size:10.5px;color:var(--mut);margin-left:3px}
.projtabs a.closed{opacity:.6}
.projtabs a.addtab{color:var(--accent);border-style:dashed}
.stagebar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.stagebar a{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--mut);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:3px 8px}
.stagebar a.on,.stagebar a:hover{border-color:var(--accent);color:var(--tx)}
.projbadges{display:flex;flex-wrap:wrap;gap:4px}
.badge.proj{background:#12203a;color:var(--slate);text-decoration:none}
.badge.proj.closed{opacity:.55}
.projform{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.projform label{display:block;font-size:11.5px;color:var(--mut);margin-bottom:4px}
.projform input,.projform select{background:var(--bg);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:6px 10px}
.projform .wide{flex:1;min-width:260px}
.projform .wide input{width:100%}
#actmodal #am-deal{width:100%}
