/* ══════════ 流程画布（static/js/95q-flow-canvas.js、95r-flow-canvas-board.js）══════════
   只用 app.css 的 token，暗色由那边一并换掉。状态色：排队 = 灰，agent 在改 = 赭，做完 = 绿，没做成 = 砖。
   这一页要整个视口：画布在左，改动记录在右。 */
#v-flowcanvas.view{max-width:none;padding:0;height:calc(100vh - 57px);display:flex}
#flow-canvas-root{flex:1;min-width:0;display:flex}

/* 选项目 */
.fc-pick{padding:28px 26px;max-width:1180px;display:flex;flex-direction:column;gap:14px}
.fc-pick h1{font-size:20px;margin:0}
.fc-plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.fc-pcard{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--surface);color:var(--ink);text-decoration:none;min-width:0}
.fc-pcard:hover{border-color:var(--ink-3);box-shadow:var(--lift)}
.fc-pcard b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-pcard .tls{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 整个应用 */
.fc-app{flex:1;min-width:0;display:grid;grid-template-rows:auto auto 1fr;position:relative}
.fc-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.fc-crumb{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.fc-crumb a{color:var(--ink-2);text-decoration:none}.fc-crumb a:hover{color:var(--ink)}
.fc-crumb b{overflow:hidden;text-overflow:ellipsis;max-width:26ch}
.fc-crumb .s{color:var(--ink-3)}
.fc-ver{position:relative;display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--surface-2);padding:2px 8px;color:var(--ink-2)}
.fc-ver select{position:absolute;inset:0;opacity:0;cursor:pointer}
.fc-seg{display:inline-flex;background:var(--surface-3);border-radius:var(--r-md);padding:3px}
.fc-seg button{border:0;background:none;padding:5px 14px;border-radius:6px;color:var(--ink-2);font:inherit;cursor:pointer}
.fc-seg button[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--lift)}
.fc-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.fc-acts .btn.is-on{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink)}
.fc-badge{display:inline-block;min-width:16px;padding:0 4px;border-radius:8px;background:var(--brick);color:#fff;font-size:10.5px;line-height:16px;text-align:center}

.fc-scope{display:flex;align-items:center;gap:12px;padding:6px 14px;border-bottom:1px solid var(--line);background:var(--surface);min-height:34px;min-width:0}
.fc-scen{display:flex;align-items:center;gap:6px;white-space:nowrap;flex:none}
.fc-scen select{font:inherit;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);padding:2px 6px}
.fc-scope-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.fc-ends,.fc-probs{position:relative}
.fc-ends summary,.fc-probs summary{cursor:pointer;color:var(--accent-ink);white-space:nowrap}
.fc-probs summary{color:var(--ochre)}
.fc-drop{position:absolute;right:0;top:24px;z-index:6;width:360px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);box-shadow:var(--pop);padding:10px 14px;font-size:12.5px;line-height:1.6}
.fc-drop p{margin:0 0 4px}
.fc-drop ul{margin:0;padding-left:16px}

.fc-body{display:grid;grid-template-columns:1fr 400px;min-height:0}
.fc-app.no-panel .fc-body{grid-template-columns:1fr 0}
.fc-stage{position:relative;overflow:hidden;min-height:0;cursor:grab;touch-action:none;
  background-color:var(--canvas);background-image:radial-gradient(var(--line-2) 1px,transparent 1px);background-size:18px 18px}
.fc-stage.is-drag{cursor:grabbing}
.fc-world{position:absolute;left:0;top:0;transform-origin:0 0}
.fc-empty{position:absolute;left:40px;top:40px;width:420px;color:var(--ink-2);line-height:1.6;transform:none}
.fc-empty.bad{color:var(--brick)}

/* 节点 */
.fc-node{position:absolute}
.fc-screen{cursor:default}
.fc-head{height:38px;cursor:move;user-select:none;display:flex;align-items:center;gap:8px;font-size:16px;color:var(--ink-2);white-space:nowrap;overflow:hidden}
.fc-head b{color:var(--ink);overflow:hidden;text-overflow:ellipsis;max-width:180px}
.fc-head .mono{overflow:hidden;text-overflow:ellipsis;color:var(--ink-3)}
.fc-old{font-size:11px;color:var(--ochre);border:1px solid var(--ochre-line);background:var(--ochre-soft);border-radius:4px;padding:0 5px}
.fc-phone{position:relative;width:360px;height:780px;border-radius:28px;overflow:hidden;background:#fff;
  box-shadow:0 0 0 1px var(--line-2),0 18px 40px -18px rgba(0,0,0,.35)}
.fc-screen.is-on .fc-phone{box-shadow:0 0 0 3px var(--accent),0 18px 40px -18px rgba(0,0,0,.35)}
.fc-phone iframe{width:100%;height:100%;border:0;display:block;background:#fff;pointer-events:none}
.fc-screen.is-on .fc-phone iframe{pointer-events:auto}
/* 拉线 / 放新页面时，点屏幕要落在画布上（选目标），不能被预览吃掉。 */
.fc-app.is-linking .fc-phone iframe,.fc-app.is-placing .fc-phone iframe{pointer-events:none}
.fc-pins{position:absolute;inset:0;pointer-events:none}
.fc-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:24px;height:24px;border-radius:50%;border:2px solid #fff;
  font:600 12px/20px var(--sans);color:#fff;cursor:pointer;padding:0;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.fc-pin.is-on{outline:3px solid var(--ring);transform:translate(-50%,-50%) scale(1.15)}
.st-queued.fc-pin,.fc-n.st-queued{background:var(--ink-3)}
.st-running.fc-pin,.fc-n.st-running{background:var(--ochre)}
.st-done.fc-pin,.fc-n.st-done{background:var(--accent)}
.st-failed.fc-pin,.fc-n.st-failed{background:var(--brick)}
.fc-node svg{display:block;overflow:visible}
.fc-node:not(.fc-screen) svg>*{fill:var(--surface);stroke:var(--line-2);stroke-width:1.5}
.fc-decision svg>*{fill:var(--ochre-soft);stroke:var(--ochre-line)}
.fc-start svg>*,.fc-end svg>*{fill:var(--accent-soft);stroke:var(--accent-line)}
.fc-shape-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 28px;gap:2px}
.fc-shape-t small{font-size:16px;color:var(--ink-3)}
.fc-shape-t b{font-size:22px;line-height:1.3;color:var(--ink)}
.fc-edges{position:absolute;pointer-events:none;overflow:visible}
.fc-edges path{fill:none;stroke:var(--ink-3);stroke-width:1.6;opacity:.7}
/* 「线呢？」at fit-to-screen (16%) a 1.6-unit line was a quarter pixel: keep 1.6 screen px at any zoom (arrows follow
   the stroke); far out the labels are unreadable specks, so they go and come back when zoomed in. */
.fc-world .fc-edges>g>path{stroke-width:calc(1.6px / var(--k,1));opacity:.85}
.fc-world.fc-far .fc-elabel{display:none}
.fc-world .fc-edges>g>path.fc-e-back{stroke-dasharray:calc(6px / var(--k,1)) calc(5px / var(--k,1));opacity:.35}
.fc-edges marker path{fill:var(--ink-3);stroke:none;opacity:1}
.fc-elabel rect{fill:var(--surface);stroke:var(--line-2)}
.fc-elabel text{font:17px var(--sans);fill:var(--ink-2);text-anchor:middle}

.fc-zoombar{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:3px;box-shadow:var(--pop);cursor:default}
.fc-zoombar button{border:0;background:none;font:inherit;color:var(--ink);padding:4px 10px;border-radius:6px;cursor:pointer}
.fc-zoombar button:hover{background:var(--surface-2)}
.fc-zoombar span{min-width:46px;text-align:center;color:var(--ink-2)}

/* 反馈面板 */
.fc-panel{border-left:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.fc-app.no-panel .fc-panel{display:none}
.fc-ph{display:flex;align-items:center;gap:10px;padding:12px 16px 8px}
.fc-ph b{font-size:15px}
.fc-x{margin-left:auto;border:0;background:none;font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer;padding:2px 6px}
.fc-list{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}
.fc-none{padding:8px 4px}
.fc-n{flex:none;width:22px;height:22px;border-radius:50%;color:#fff;font-size:12px;font-weight:600;display:grid;place-items:center}
.fc-text{margin:0;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.fc-line{margin:0;font-size:12.5px;line-height:1.6}
.fc-line.st-resolved{color:var(--accent-ink)}.fc-line.st-sent{color:var(--ochre)}
.fc-cmp{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-cmp figure{margin:0;display:flex;flex-direction:column;gap:4px}
.fc-cmp figcaption{font-size:11.5px;color:var(--ink-3)}
.fc-mini{position:relative;width:100%;aspect-ratio:360/780;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--line-2)}
.fc-mini iframe{position:absolute;left:0;top:0;width:360px;height:780px;border:0;transform-origin:0 0;transform:scale(.46);pointer-events:none}

/* 留言框 */
.fc-pop{position:absolute;z-index:20;width:370px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--pop);
  padding:12px;display:flex;flex-direction:column;gap:10px}
.fc-pop[hidden]{display:none}
.fc-pop-h{display:flex;align-items:center;gap:8px;min-width:0}
.fc-pop-h i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--brick)}
.fc-pop-h b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.fc-pop-h .mono{background:var(--surface-2);border-radius:4px;padding:1px 6px;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fc-pop textarea{font:inherit;resize:vertical;min-height:84px;border:1px solid var(--line-2);border-radius:var(--r);padding:8px;background:var(--surface);color:var(--ink)}
.fc-pop textarea:focus{outline:2px solid var(--ring);border-color:var(--accent)}
.fc-pop-f{display:flex;align-items:center;gap:8px}
.fc-pop-f .tls{flex:1}
.fc-pop kbd{font:11px var(--mono);opacity:.7}
.fc-app.is-linking .fc-stage,.fc-app.is-placing .fc-stage{cursor:crosshair}
.fc-app.is-linking .fc-screen:hover .fc-phone{box-shadow:0 0 0 4px var(--accent)}

@media (max-width:900px){
  .fc-top{grid-template-columns:1fr;justify-items:start}
  .fc-body{grid-template-columns:1fr}
  .fc-panel{position:absolute;right:0;top:0;bottom:0;width:min(400px,100%);z-index:10;box-shadow:var(--pop)}
}

/* 标题栏里的「改动中」 */
.fc-busy{margin-left:auto;font-size:14px;color:var(--ochre);border:1px solid var(--ochre-line);background:var(--ochre-soft);border-radius:10px;padding:0 8px}
/* 还没写出来的一屏 */
.fc-pending{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:repeating-linear-gradient(135deg,var(--surface-2) 0 14px,var(--surface) 14px 28px);color:var(--ink-2);font-size:18px;text-align:center;padding:24px}
.fc-pending b{font-size:24px;color:var(--ink)}
.fc-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--ochre);animation:fc-spin 1s linear infinite}
.fc-spin.sm{display:inline-block;width:12px;height:12px;border-width:2px;vertical-align:-2px;margin-right:6px}
@keyframes fc-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.fc-spin{animation:none}}
/* 拉线的橡皮筋 */
.fc-rubber{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}
.fc-rubber path{fill:none;stroke:var(--accent);stroke-width:3;stroke-dasharray:10 8}
.fc-hint{display:inline-flex;align-items:center;gap:6px;color:var(--accent-ink);font-weight:600}
.fc-hint svg{width:14px;height:14px}
.fc-scope .btn kbd,.fc-pop kbd{font:11px var(--mono);opacity:.7}
.fc-acts .btn.solid.is-on{outline:2px solid var(--ring)}

/* 改动记录 */
.fc-list{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}
.fc-none{padding:6px 4px;line-height:1.7;color:var(--ink-2);font-size:13px}
.fc-none p{margin:0 0 8px}
.fc-task{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--surface);cursor:pointer}
.fc-task:hover{border-color:var(--line-2)}
.fc-task.is-on{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--ring)}
.fc-th{display:flex;align-items:center;gap:8px;min-width:0}
.fc-th b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-kind{flex:none;font-size:11.5px;color:var(--ink-2);background:var(--surface-2);border-radius:4px;padding:1px 6px}
.fc-line{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.fc-line.st-done{color:var(--accent-ink)}.fc-line.st-running{color:var(--ochre)}.fc-line.st-failed{color:var(--brick)}
.fc-tacts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fc-tacts time{margin-left:auto}
.fc-mini .tls{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:8px}

/* 弹框里的表单 */
.fc-pop{width:390px}
.fc-pop-h i.lk{background:var(--accent)}.fc-pop-h i.pg{background:var(--ochre)}
.fc-pop .grow{flex:1}
.fc-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-row label,.fc-full{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}
.fc-pop select,.fc-pop input{font:inherit;font-size:13px;border:1px solid var(--line-2);border-radius:var(--r);padding:6px 8px;background:var(--surface);color:var(--ink)}
.fc-pop select:focus,.fc-pop input:focus{outline:2px solid var(--ring);border-color:var(--accent)}

/* 屏幕右边的 ＋：加下一屏 / 拖到另一屏连起来。按屏幕像素定大小（除以缩放 --k），缩放到多少都是一颗
   小圆钮，贴在手机外沿，不压内容；平时白底描边，悬停才变实心。 */
.fc-plus{--s:calc(1px / var(--k,1));position:absolute;left:calc(100% + 10 * var(--s));top:calc(38px + 390px - 14 * var(--s));
  width:calc(28 * var(--s));height:calc(28 * var(--s));border-radius:50%;padding:0;
  border:calc(1.5 * var(--s)) solid var(--line-2);background:var(--surface);color:var(--ink-2);
  font:500 calc(18 * var(--s))/1 var(--sans);cursor:crosshair;box-shadow:0 calc(1 * var(--s)) calc(4 * var(--s)) rgba(0,0,0,.12);
  opacity:0;transition:opacity .15s,background .15s,color .15s,border-color .15s;z-index:2;display:grid;place-items:center}
.fc-screen:hover .fc-plus,.fc-screen.is-on .fc-plus,.fc-plus:focus-visible{opacity:1}
.fc-plus:hover{background:var(--accent);border-color:var(--accent);color:#fff}
@media (hover:none){.fc-plus{opacity:1}}

/* 挪屏：没选中的屏整块都能拖（预览不接鼠标），点一下选中；选中的那一屏预览能点、拖标题栏挪。
   按住空格 = 从哪儿都能拖整张画布。 */
.fc-screen:not(.is-on){cursor:grab}
.fc-screen:not(.is-on) .fc-phone iframe{pointer-events:none}
.fc-node.is-dragging{cursor:grabbing;z-index:5}
.fc-node.is-dragging .fc-phone{box-shadow:0 0 0 2px var(--accent),0 30px 60px -20px rgba(0,0,0,.45)}
.fc-app.is-space .fc-stage,.fc-app.is-space .fc-node{cursor:grab}
.fc-app.is-space .fc-phone iframe{pointer-events:none!important}

/* 左上角的移动钮：选中的那一屏预览要能点，整块拖不了；拖这颗钮哪一屏都能挪。和 ＋ 一样按屏幕像素定大小。 */
.fc-move{--s:calc(1px / var(--k,1));position:absolute;right:calc(100% + 10 * var(--s));top:38px;
  width:calc(28 * var(--s));height:calc(28 * var(--s));border-radius:calc(8 * var(--s));padding:0;
  border:calc(1.5 * var(--s)) solid var(--line-2);background:var(--surface);color:var(--ink-2);
  cursor:grab;box-shadow:0 calc(1 * var(--s)) calc(4 * var(--s)) rgba(0,0,0,.12);display:grid;place-items:center;
  opacity:0;transition:opacity .15s,background .15s,color .15s;z-index:2}
.fc-move svg{width:calc(16 * var(--s));height:calc(16 * var(--s))}
.fc-node:hover .fc-move,.fc-screen.is-on .fc-move,.fc-node.is-dragging .fc-move,.fc-move:focus-visible{opacity:1}
.fc-move:hover{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.fc-node.is-dragging .fc-move{cursor:grabbing}
@media (hover:none){.fc-move{opacity:1}}

/* 卡片里展开的会话 */
.fc-chat{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);
  padding:8px 10px;display:flex;flex-direction:column;gap:4px;cursor:default}
.fc-step{margin:0;font-size:12px;line-height:1.5;color:var(--ink-3);display:flex;gap:6px;min-width:0}
.fc-step i{font-style:normal;flex:none;width:14px;text-align:center}
.fc-step.tool{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-step.err{color:var(--brick)}
.fc-step.live{color:var(--ochre)}
.fc-say{margin:4px 0;font-size:13px;line-height:1.6;color:var(--ink);white-space:pre-wrap;word-break:break-word}

/* HTML / 手机 App / APK：舞台上和场景路径、全局画布并列的三个视图 */
.fc-view{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--canvas);cursor:default}
.fc-view[hidden]{display:none}
.fc-side-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.fc-view-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px}
.fc-device{height:100%;max-height:820px;max-width:100%;aspect-ratio:380/800;border-radius:44px;background:#111;padding:10px;box-shadow:0 26px 50px -20px rgba(0,0,0,.55)}
.fc-device iframe{width:100%;height:100%;border:0;border-radius:34px;background:#fff;display:block}
.fc-browser{width:min(1100px,100%);height:100%;display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);box-shadow:var(--pop)}
.fc-browser-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.fc-browser-bar .mono{flex:1;color:var(--ink-3)}
.fc-browser iframe{flex:1;width:100%;border:0;background:#fff}
.fc-app-strip{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface);overflow-x:auto;flex:none;justify-content:center}
.fc-app-strip button{flex:none;border:1px solid var(--line-2);background:var(--surface);border-radius:14px;padding:4px 12px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.fc-app-strip button[aria-current="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.fc-view-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.fc-view-bar .grow{flex:1}
.fc-apk-frame{flex:1;width:100%;border:0;background:var(--surface)}
.fc-apk-start{flex:1;display:grid;place-items:center;padding:24px}
.fc-apk-card{max-width:420px;display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--lift)}
.fc-apk-card b{font-size:16px}
.fc-apk-card p{margin:0;line-height:1.7}
.fc-app.is-view .fc-scope{visibility:hidden}
.fc-plus.left{left:auto;right:calc(100% + 10 * var(--s))}
/* 左边的 ＋ 和移动钮都在左沿：移动钮在上，＋ 在中间，不打架。 */

/* 弹框：元素名 → 一行直接改 → 主输入框 → 一行底栏。颜色只留给按钮，不再一块块色框。 */
.fc-pop{width:392px;gap:10px;padding:14px}
.fc-pop-h b{max-width:120px}
.fc-direct{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 0 10px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
.fc-direct-k{font-size:12px;color:var(--ink-3);white-space:nowrap}
.fc-direct input{min-width:0}
.fc-direct.icon{grid-template-columns:auto 1fr}
.fc-direct.icon .fc-icons{grid-column:1/-1}
.fc-icons{display:grid;grid-template-columns:repeat(9,1fr);gap:2px;max-height:132px;overflow:auto}
.fc-icons button{aspect-ratio:1;border:1px solid transparent;background:none;border-radius:6px;cursor:pointer;color:var(--ink);display:grid;place-items:center;padding:0}
.fc-icons button:hover,.fc-icons button:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.fc-icons svg{width:20px;height:20px;fill:currentColor}
.fc-icons .tls{grid-column:1/-1}
.fc-scope-sel{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-3);white-space:nowrap;flex:none}
.fc-scope-sel select{padding:4px 6px;font-size:12.5px}
.fc-pop-f{flex-wrap:nowrap}
.fc-scope-seg{flex:none}
.fc-scope-seg button[aria-checked="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--lift)}
.fc-scope-seg .tls{font-weight:400}
.fc-scope-row{display:flex;align-items:center;gap:8px}

/* 入口页 */
.fc-pick{padding:28px 26px 60px;max-width:1180px;display:flex;flex-direction:column;gap:14px}
.fc-pick-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.fc-pick-h h1{font-size:22px;margin:0 0 6px}
.fc-pick-h .lede{margin:0}
.fc-search{max-width:360px;font:inherit;border:1px solid var(--line-2);border-radius:var(--r-md);padding:8px 12px;background:var(--surface);color:var(--ink)}
.fc-search:focus{outline:2px solid var(--ring);border-color:var(--accent)}
.fc-pick h2{margin:10px 0 0}
.fc-recent{display:grid;grid-template-columns:repeat(auto-fill,168px);gap:16px}
.fc-rcard{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);min-width:0}
.fc-rcard b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-thumb{position:relative;aspect-ratio:360/560;border-radius:14px;overflow:hidden;background:var(--surface-2);box-shadow:0 0 0 1px var(--line);display:grid;place-items:center;transition:box-shadow .15s,transform .15s}
.fc-rcard:hover .fc-thumb{box-shadow:0 0 0 2px var(--accent),var(--pop);transform:translateY(-2px)}
.fc-thumb iframe{position:absolute;left:0;top:0;width:360px;height:560px;border:0;transform-origin:0 0;transform:scale(calc(168 / 360));pointer-events:none;background:#fff}
.fc-plist2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2px 16px}
.fc-prow{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:var(--r);text-decoration:none;color:var(--ink);min-width:0}
.fc-prow:hover{background:var(--surface-2)}
.fc-prow b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-prow .tls{flex:none}
@media (prefers-reduced-motion:reduce){.fc-thumb{transition:none}.fc-rcard:hover .fc-thumb{transform:none}}
