/* ── funnel：漏斗頁（選哪一包、哪條漏斗、累計數字、關卡小分頁、名單、對話紀錄、關卡設定、CSV 匯入） ── */
.fn-head h1{margin:0;font-size:var(--fs-2xl);font-weight:900;line-height:var(--lh-tight)}
.fn-sub{margin:var(--sp-1) 0 var(--sp-6);font-size:var(--fs-cap);color:var(--ink-3)}
.fn-pick{max-width:420px;margin-bottom:var(--sp-5)}
.fn-pick .f,.ld-edit .f{display:grid;gap:var(--sp-1);font-size:var(--fs-cap);color:var(--ink-3);font-weight:700}
.fn-pick select,.fn-add input,.fn-add select,.fn-search input,.fn-newform input,.ld-edit input,.ld-edit select,.ln-add input,.fs-name,#fs-fname,.im-body textarea,.im-body input[type=file]{
  min-height:var(--tap);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);padding:0 var(--sp-4);font-size:var(--fs-body);min-width:0}
.fn-funnels{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.fn-f{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);padding:0 var(--sp-6);font-weight:700;font-size:var(--fs-body)}
.fn-f[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.fn-n{font-size:var(--fs-cap);font-weight:700;opacity:.85}
.fn-newform{display:flex;flex-wrap:wrap;gap:var(--sp-3);flex:1 1 100%}
.fn-newform input{flex:1 1 220px}
.fn-empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-7);color:var(--ink-2);font-size:var(--fs-body);margin:0}
.fn-board{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-6) var(--sp-7);display:grid;gap:var(--sp-5)}
.fn-title{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}
.fn-title h2{margin:0;font-size:var(--fs-xl);font-weight:900;line-height:var(--lh-tight)}
.fn-tools{display:flex;gap:var(--sp-3);flex-wrap:wrap}
/* 上方累計：40 → 12 → 5 → 1 */
.fn-cum{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}
.fn-cum li:not(.fn-arrow){display:grid;justify-items:center;min-width:64px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4)}
.fn-cum b{font-size:var(--fs-xl);font-weight:900;font-variant-numeric:tabular-nums;line-height:var(--lh-tight)}
.fn-cum span{font-size:var(--fs-cap);color:var(--ink-3);line-height:var(--lh-tight)}
.fn-arrow{color:var(--ink-3);font-weight:800}
/* 小分頁 */
.fn-tabs{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--line);padding-bottom:2px}
.fn-tab{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);border:0;border-bottom:3px solid transparent;background:none;padding:0 var(--sp-5);font-weight:700;font-size:var(--fs-body);color:var(--ink-2);white-space:nowrap}
.fn-tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--people)}
.fn-tab .fn-n{background:var(--surface-2);border-radius:var(--r-pill);padding:0 var(--sp-3);color:var(--ink-2)}
.fn-search input{width:100%}
.fn-add{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}
/* 名單 */
.fn-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3)}
.ld{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-4);align-items:center;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-5)}
.ld.is-open{border-color:var(--people);box-shadow:0 0 0 1px var(--people)}
.ld-sum{display:grid;gap:2px;text-align:left;border:0;background:none;padding:var(--sp-1) 0;min-height:var(--tap);min-width:0;cursor:pointer;color:var(--ink)}
.ld-name{font-weight:800;font-size:var(--fs-md);line-height:var(--lh-tight)}
.ld-meta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);font-size:var(--fs-cap);color:var(--ink-3);line-height:var(--lh-tight)}
.ld-stage{color:var(--people-ink);font-weight:800}
.ld-move{display:flex;gap:var(--sp-2)}
.ld-move .btn{padding:0 var(--sp-4)}
.ld-stamp{grid-column:1/-1;margin:0;font-size:var(--fs-cap);color:var(--ink-3);line-height:var(--lh-tight)}
.ld-detail{grid-column:1/-1;display:grid;gap:var(--sp-5);border-top:1px solid var(--line-2);padding-top:var(--sp-5)}
.ld-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}
.ld-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}
.ld-save{font-size:var(--fs-cap);color:var(--ink-3)}
@media (max-width:560px){.ld{grid-template-columns:minmax(0,1fr)}.ld-move{justify-content:flex-start}}
/* 對話紀錄 */
.ln-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}
.ln-head h4{margin:0;font-size:var(--fs-body);font-weight:800}
.ln-n{margin-left:var(--sp-3);font-size:var(--fs-cap);color:var(--ink-3);font-weight:700}
.ln-add{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);margin:var(--sp-3) 0}
@media (max-width:560px){.ln-add{grid-template-columns:minmax(0,1fr)}}
.ln-list{list-style:none;margin:0;padding:0;border:1px solid var(--line-2);border-radius:var(--r-md)}
.ln-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:var(--sp-4);align-items:center;padding:0 0 0 var(--sp-4);border-bottom:1px solid var(--line-2);font-size:var(--fs-sm)}
.ln-row:last-child{border-bottom:0}
.ln-at{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:700;white-space:nowrap}
.ln-text{overflow-wrap:anywhere;padding:var(--sp-2) 0}
.ln-by{font-size:var(--fs-cap);color:var(--ink-3)}
.ln-del{width:var(--tap);min-height:var(--tap);border:0;background:none;color:var(--ink-3);font-size:var(--fs-lg)}
.ln-del:hover{color:var(--bad-ink)}
.ln-empty{margin:0;font-size:var(--fs-sm);color:var(--ink-3)}
/* 關卡設定、CSV 匯入的小窗（外框借成員小窗的樣子） */
.fs-dlg,.im-dlg{border:0;border-radius:var(--r-lg);padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lift)}
.fs-dlg::backdrop,.im-dlg::backdrop{background:var(--scrim)}
.fs-body,.im-body{display:grid;gap:var(--sp-4);padding:var(--sp-5) var(--sp-7) var(--sp-7)}
.fs-body .f,.im-body .f{display:grid;gap:var(--sp-1);font-size:var(--fs-cap);color:var(--ink-3);font-weight:700}
.fs-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}
.fs-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:var(--sp-3);align-items:center;background:var(--surface);border-radius:var(--r-md)}
.fs-grip{width:var(--tap);min-height:var(--tap);border:0;background:none;color:var(--ink-3);cursor:grab;touch-action:none}
.fs-n{font-size:var(--fs-cap);color:var(--ink-3);white-space:nowrap}
.fs-foot{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.fs-foot .sp{flex:1}
.fs-status,.im-status{margin:0;font-size:var(--fs-sm);color:var(--ink-2);min-height:1.5em}
.fs-status.bad,.im-status.bad{color:var(--bad-ink)}
.im-table-wrap{overflow:auto;max-height:46vh;border:1px solid var(--line-2);border-radius:var(--r-md)}
.im-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.im-table th,.im-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
.im-table th{position:sticky;top:0;background:var(--surface-2);font-size:var(--fs-cap);color:var(--ink-3)}
.im-table input[type=checkbox]{width:22px;height:22px}
.im-table tr.im-warn td{background:var(--warn-bg);color:var(--ink)}
.im-table td:last-child{color:var(--ink-2)}
.im-table tr.im-warn td:last-child{color:var(--warn-ink);font-weight:700}
.im-table small{display:block;color:var(--ink-3);font-size:var(--fs-cap)}
