/* 客戶列表（ccy-*）—— 客戶管理中心同理財需要分析著陸頁共用同一份。
   ─────────────────────────────────────────────────────────────────────────
   2026-09-10：用戶要理財需要分析個清單同客戶管理中心一模一樣（可排序表頭／篩選藥丸／搜尋／星標／
   顯示設定），所以列表嗰部分嘅規則由 clients-yf.css 搬出嚟呢度，兩頁各自 link 一次。
   ⚠️ 客戶管理中心要**先**載呢個檔，再載 clients-yf.css —— 詳情頁嗰邊有幾條同名但更specific
      嘅規則（.ccy-tag.st、.ccy-star.hero、.ccy-cov-exp .ccy-tblwrap…）要覆蓋得返。
   ⚠️ 零新樣式：全部規則逐 byte 由 clients-yf.css 搬過嚟，冇改過一個值。跟 tokens.css，零 emoji。 */
.ccy-head { display: flex; align-items: baseline; gap: var(--sp-2); margin: 0 0 var(--sp-3); }
.ccy-head h1 { font-size: var(--fs-2xl); font-weight: 700; color: var(--ink); margin: 0; }
.ccy-count { font-size: var(--fs-sm); color: var(--muted); }
.ccy-hint { font-size: var(--fs-sm); color: var(--muted); }
/* 空狀態 */
.ccy-empty { padding: var(--sp-5); text-align: center; color: var(--muted); }
.ccy-empty-t { font-size: var(--fs-lg); font-weight: 700; color: var(--ink); margin-bottom: var(--sp-2); }
.ccy-empty p { font-size: var(--fs-sm); line-height: 1.6; max-width: 44ch; margin: 0 auto; }
/* 工具列 */
.ccy-tools { margin-bottom: var(--sp-2); }
.ccy-search { width: 100%; box-sizing: border-box; padding: var(--sp-2) var(--sp-3); font-size: var(--fs-md);
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--card); color: var(--ink); }
.ccy-search:focus { outline: 2px solid var(--focus); border-color: transparent; }

.ccy-filt { display: flex; flex-wrap: wrap; gap: var(--sp-1h); margin-bottom: var(--sp-3); }
.ccy-fchip { padding: var(--sp-1) var(--sp-2h); font-size: var(--fs-sm); border: 1px solid var(--line);
  border-radius: var(--r-pill); background: var(--card); color: var(--ink2); cursor: pointer; }
.ccy-fchip.on { background: var(--brand-deep, var(--primary)); color: #fff; border-color: transparent; }
/* 客戶列表表格 */
.ccy-count { display: block; font-size: var(--fs-sm); color: var(--muted); margin-bottom: var(--sp-2); }
.ccy-list .ccy-tblwrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--card); }
.ccy-ltbl { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ccy-ltbl th, .ccy-ltbl td { text-align: left; padding: var(--sp-2) var(--sp-2h); border-bottom: 1px solid var(--line);
  white-space: nowrap; vertical-align: middle; }
.ccy-ltbl thead th { position: sticky; top: 0; z-index: 1; background: var(--bg2); color: var(--muted);
  font-weight: 600; font-size: var(--fs-2xs); }
.ccy-th[data-sort] { cursor: pointer; user-select: none; }
.ccy-th[data-sort]:hover { color: var(--ink); }
.ccy-th.on { color: var(--brand-green-deep, var(--accent)); }
.ccy-th.r, .ccy-ltbl td.r { text-align: right; }
.ccy-th-star, .ccy-td-star { text-align: center; width: 36px; }
/* 多選刪除（09-11）：最左 checkbox 欄＋已選行底色＋上方操作列 */
.ccy-th-sel, .ccy-td-sel { text-align: center; width: 36px; }
.ccy-th-sel input, .ccy-td-sel input { accent-color: var(--brand-green-deep, var(--accent)); width: 16px; height: 16px; margin: 0; cursor: pointer; vertical-align: middle; }
.ccy-ltbl tbody tr.sel, .ccy-ltbl tbody tr.sel:hover { background: var(--accent-soft); }
.ccy-bulk { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; margin-bottom: var(--sp-2); padding: var(--sp-2) var(--sp-3); border: 1px solid var(--brand-gold-deep); border-radius: var(--r-md); background: var(--accent-soft); font-size: var(--fs-sm); }
.ccy-bulk .n { font-weight: 700; }
.ccy-bulk .sp { flex: 1; }
.ccy-ltbl tbody tr { cursor: pointer; }
.ccy-ltbl tbody tr:hover { background: var(--bg2); }
.ccy-ltbl tbody tr:last-child td { border-bottom: 0; }
.ccy-td-nm { font-weight: 600; color: var(--ink); }
.ccy-td-em { font-size: var(--fs-2xs); color: var(--muted); }
.ccy-ltbl td.mono { font-family: var(--mono); font-size: var(--fs-2xs); color: var(--ink2); }
.ccy-dash { color: var(--muted); }

.ccy-star { color: var(--line2); font-size: 18px; background: none; border: 0; cursor: pointer; line-height: 1; }
.ccy-star.on { color: var(--brand-gold, #C9A45C); }
.ccy-star.lg { font-size: 24px; }

.ccy-chips { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.ccy-chip { font-size: var(--fs-2xs); padding: 2px var(--sp-1h); border-radius: var(--r-pill);
  background: var(--accent-soft, var(--bg2)); color: var(--accent-ink, var(--ink2)); white-space: nowrap; }
.ccy-chip i { font-style: normal; font-weight: 700; margin-left: 4px; }
.ccy-chip.more { background: none; color: var(--muted); }
.ccy-tag { font-size: var(--fs-2xs); padding: 2px var(--sp-1h); border-radius: var(--r-sm); background: var(--bg2); color: var(--ink2); }
.ccy-tblwrap { overflow-x: auto; margin-top: var(--sp-1h); }
/* 顯示設定 */
.ccy-head-sp { flex: 1 1 auto; }
.ccy-setbtn { padding: var(--sp-1) var(--sp-2h); font-size: var(--fs-sm); border: 1px solid var(--line);
  border-radius: var(--r-pill); background: var(--card); color: var(--ink2); cursor: pointer; white-space: nowrap; }
.ccy-setbtn:hover { color: var(--ink); }
.ccy-setbtn.on { background: var(--brand-deep, var(--primary)); color: #fff; border-color: transparent; }
.ccy-settings { padding: var(--sp-3); margin-bottom: var(--sp-3); }
.ccy-settings-h { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); margin-bottom: var(--sp-1); }
.ccy-settings-h strong { font-size: var(--fs-lg); color: var(--ink); }
.ccy-setreset { padding: var(--sp-1) var(--sp-2h); font-size: var(--fs-sm); border: 1px solid var(--line);
  border-radius: var(--r-sm); background: var(--card); color: var(--link); cursor: pointer; }
.ccy-settings .ccy-hint { margin: 0 0 var(--sp-3); }
.ccy-setsec { margin-bottom: var(--sp-3); }
.ccy-setsec:last-child { margin-bottom: 0; }
.ccy-setsec h4 { font-size: var(--fs-md); font-weight: 700; color: var(--ink); margin: 0 0 var(--sp-2);
  padding-bottom: var(--sp-1); border-bottom: 1px solid var(--line); }
.ccy-setgrp { margin-bottom: var(--sp-2); }
.ccy-setgrp-t { font-size: var(--fs-2xs); color: var(--muted); margin-bottom: var(--sp-1); }
.ccy-setopts { display: flex; flex-wrap: wrap; gap: var(--sp-1h) var(--sp-3); }
.ccy-setopt { display: inline-flex; align-items: center; gap: var(--sp-1h); font-size: var(--fs-sm);
  color: var(--ink2); cursor: pointer; }
.ccy-setopt input { accent-color: var(--brand-green-deep, var(--accent)); cursor: pointer; }
/* 篩選藥丸嘅中文註解：細一級、淺一級，唔搶代碼本身 */
.ccy-fchip .zh{font-style:normal;margin-left:var(--sp-1h);font-size:var(--fs-2xs);opacity:.7}
.ccy-fchip.on .zh{opacity:.85}
.ccy-tools{display:flex;gap:var(--sp-2);align-items:center}
.ccy-tools .ccy-search{flex:1}
.ccy-tag.pro{background:var(--warn-soft);color:var(--warn);margin-left:6px}
.ccy-tag.suspect{background:var(--warn-soft);color:var(--warn);margin-left:6px}
/* ── 09-15 篩選面板（跟宏利 clients.css cc-fbar／cc-chips／cc-fpanel）＋ 保單角色 tag ── */
.ccy-fbar{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2)}
.ccy-fbtn{display:inline-flex;align-items:center;gap:var(--sp-1h);border:1px solid var(--line);background:var(--card,#fff);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2h);font:inherit;font-size:var(--fs-sm);cursor:pointer}
.ccy-fbtn.on{border-color:var(--brand-deep,var(--primary));color:var(--brand-deep,var(--primary))}
.ccy-fbtn i{font-style:normal;background:var(--brand-deep,var(--primary));color:#fff;border-radius:var(--r-md);min-width:16px;height:16px;font-size:var(--fs-3xs,.65rem);display:inline-flex;align-items:center;justify-content:center;padding:0 4px}
.ccy-fbtn .fi{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.ccy-fbtn .chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:2px}
.ccy-fbtn.on .chev{transform:rotate(-135deg);margin-top:3px}
.ccy-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1h);margin:0 0 var(--sp-2)}
.ccy-chips .chip{display:inline-flex;align-items:center;gap:var(--sp-1h);border:1px solid var(--brand-deep,var(--primary));background:rgba(0,0,0,.04);border-radius:var(--r-md);padding:2px var(--sp-2);font:inherit;font-size:var(--fs-sm);cursor:pointer}
.ccy-chips .chip b{font-weight:500;opacity:.65}.ccy-chips .chip i{font-style:normal;opacity:.7}.ccy-chips .chip.all{border-style:dashed}
.ccy-fpanel{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-3);background:var(--card,#fff)}
.ccy-fpanel.hidden{display:none}
.ccy-frow{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-1h) 0;border-top:1px solid var(--line)}
.ccy-frow:first-child{border-top:0}
.ccy-frow>span{flex:0 0 6em;font-size:var(--fs-sm);color:var(--ink2,#555);padding-top:var(--sp-1)}
.ccy-fchips{display:flex;flex-wrap:wrap;gap:var(--sp-1h)}
.ccy-fchip .n{font-style:normal;margin-left:var(--sp-1h);font-size:var(--fs-2xs);opacity:.7}
.ccy-role{display:inline-block;margin-left:var(--sp-1h);padding:0 var(--sp-1h);border-radius:var(--r-sm);font-size:var(--fs-2xs);line-height:1.6;background:rgba(0,0,0,.06);color:var(--ink2,#555);vertical-align:middle}
.ccy-role.own{background:rgba(0,112,60,.10);color:var(--brand-green-deep,#00703c)}
