/* V218 全站：AI 偵探浮動入口、電影感換頁轉場、手機排版修正 */
@view-transition{navigation:auto}
::view-transition-old(root){animation:v218-vt-out .22s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:v218-vt-in .34s cubic-bezier(0,0,.2,1) both}
@keyframes v218-vt-out{to{opacity:0;filter:brightness(.6) blur(2px);transform:scale(.985)}}
@keyframes v218-vt-in{from{opacity:0;clip-path:inset(0 0 100% 0);filter:brightness(1.4)}to{opacity:1;clip-path:inset(0 0 0 0);filter:none}}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

.v218-fab{position:fixed;z-index:96;right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:9px 16px 9px 9px;border-radius:999px;border:1px solid rgba(239,201,147,.55);background:linear-gradient(135deg,rgba(18,34,41,.94),rgba(10,20,25,.96));color:#f3e6d2;font:inherit;cursor:pointer;box-shadow:0 12px 34px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.04);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s ease,box-shadow .18s ease}
.v218-fab:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.5),0 0 0 4px rgba(213,172,116,.12)}
.v218-fab:focus-visible{outline:2px solid #efc993;outline-offset:3px}
.v218-fab-ring{position:relative;width:34px;height:34px;border-radius:50%;border:1px solid rgba(239,201,147,.7);background:radial-gradient(circle,#efc993 0 3px,transparent 4px),repeating-radial-gradient(circle,transparent 0 6px,rgba(239,201,147,.2) 6px 7px);overflow:hidden;flex:0 0 auto}
.v218-fab-ring::after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(239,201,147,.8),transparent 75deg);animation:v218-fab-spin 2.6s linear infinite}
.v218-fab::before{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(239,201,147,.6);animation:v218-fab-pulse 2.8s ease-out infinite;pointer-events:none}
@keyframes v218-fab-spin{to{transform:rotate(360deg)}}
@keyframes v218-fab-pulse{0%{opacity:.7;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.18)}}
.v218-fab-t{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.v218-fab-t b{font-size:15px;letter-spacing:.06em;color:#fff}
.v218-fab-t small{font-size:11px;color:#d5ac74;letter-spacing:.04em}
html.v218-on .ai-consultant .ai-launch{display:none!important}
html.v218-open .v218-fab{visibility:hidden}
.v218-boot{height:100%;display:grid;place-items:center;align-content:center;gap:14px;background:#0d1a20;color:#d5ac74;font:500 12px/1.6 ui-monospace,Menlo,monospace;letter-spacing:.12em;padding:24px;text-align:center}
.v218-boot a{color:#efc993}
.v218-boot i{width:46px;height:46px;border-radius:50%;border:2px solid rgba(213,172,116,.25);border-top-color:#efc993;animation:v218-fab-spin .8s linear infinite}
.v218-panel{position:fixed;z-index:2147483000;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:min(440px,calc(100vw - 28px));height:min(720px,calc(100dvh - 28px));border-radius:18px;overflow:hidden;background:#0d1a20}
.v218-panel[hidden]{display:none}
@media (max-width:720px){
  .v218-fab{bottom:calc(var(--v214-mobile-dock,64px) + 12px + env(safe-area-inset-bottom));right:12px;padding:7px 13px 7px 7px}
  .v218-fab-ring{width:30px;height:30px}
  .v218-fab-t small{display:none}
  .v218-panel{inset:0;width:100%;height:100%;height:100dvh;border-radius:0}
  html.v218-open,html.v218-open body{overflow:hidden}
  /* 原有工具連結列：手機改為單列橫向捲動，連結全部保留 */
  .v201-utility .v201-links{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .v201-utility .v201-links::-webkit-scrollbar{display:none}
  .v201-utility .v201-links a{flex:0 0 auto;white-space:nowrap}
  /* 回饋音效開關縮小，避免遮住內文 */
  .apex-feedback-control{transform:scale(.82);transform-origin:left bottom;opacity:.85}
}
@media (prefers-reduced-motion:reduce){.v218-fab::before,.v218-fab-ring::after{animation:none}}
@media print{.v218-fab,.v218-panel{display:none!important}}
/* V220 電影感：閱讀進度掃描線＋標題掃描顯影 */
.v220-progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:97;pointer-events:none;background:linear-gradient(90deg,rgba(213,172,116,0),#efc993 70%,#fff);box-shadow:0 0 8px rgba(239,201,147,.7);transform-origin:0 50%;transform:scaleX(0);display:none}
@supports (animation-timeline:scroll()){.v220-progress{display:block;animation:v220-prog linear both;animation-timeline:scroll(root)}}
@keyframes v220-prog{to{transform:scaleX(1)}}
html.v220-fx .v220-reveal{clip-path:inset(0 100% 0 0);position:relative}
html.v220-fx .v220-reveal.v220-in{animation:v220-decode .7s cubic-bezier(.2,.7,.2,1) both}
html.v220-fx .v220-reveal.v220-in::after{content:"";position:absolute;top:-4px;bottom:-4px;width:2px;left:0;background:#efc993;box-shadow:0 0 12px #efc993;animation:v220-beam .7s cubic-bezier(.2,.7,.2,1) both;pointer-events:none}
@keyframes v220-decode{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes v220-beam{from{left:0;opacity:1}90%{opacity:1}to{left:100%;opacity:0}}
.v218-ai-hero h2{background:linear-gradient(100deg,#fff 0 42%,#efc993 50%,#fff 58% 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:v220-sheen 2.8s ease-out .3s 1 both}
@keyframes v220-sheen{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.v220-progress{display:none!important}html.v220-fx .v220-reveal{clip-path:none!important;animation:none!important}.v218-ai-hero h2{color:#fff;background:none;animation:none}}
html.v215-lite .v220-reveal{clip-path:none!important}
@media print{.v220-progress{display:none}html.v220-fx .v220-reveal{clip-path:none!important}}

/* V222 電影感互動 */
.v222-glow{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;z-index:4;background:radial-gradient(circle,rgba(239,201,147,.11),rgba(239,201,147,.04) 38%,transparent 66%);opacity:0;transition:opacity .35s;will-change:transform}
.v222-glow.on{opacity:1}
.v222-rv{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.v222-rv.v222-in{opacity:1;transform:none}
.v215-lite .v222-glow{display:none}.v215-lite .v222-rv{opacity:1;transform:none;transition:none}
@media (prefers-reduced-motion:reduce){.v222-glow{display:none}.v222-rv{opacity:1;transform:none;transition:none}}
@media print{.v222-glow{display:none}.v222-rv{opacity:1!important;transform:none!important}}

/* V226 版面修正（只加不改）
   1) 步驟清單 .steps：標題與說明都排在數字右邊那一欄。原本說明文字會掉進數字欄，電腦版只剩約 74px 寬、手機只剩約 46px 寬，變成一字一行的窄條。
   2) 手機窄版的表格：指南內帶 data-label 的表格改成「一列一張卡」，每一格前面顯示欄位名稱，不必橫向捲動就能讀完所有欄位；電腦版不變。 */
.steps > li{row-gap:0}
.steps > li > *{grid-column:2}
@media (max-width:720px){
  .table-wrap.v226-stack{overflow:visible;border:0;border-radius:0;margin:18px 0;background:none}
  .v226-stack table{display:block;min-width:0;width:100%}
  .v226-stack thead{display:none}
  .v226-stack tbody{display:grid;gap:12px}
  .v226-stack tbody tr{display:block;border:1px solid var(--line);border-radius:var(--radius-lg,14px);overflow:hidden;background:rgba(10,24,30,.55)}
  .v226-stack tbody td{display:block;padding:10px 15px;border-bottom:1px solid var(--line);line-height:1.7}
  .v226-stack tbody tr:last-child td{border-bottom:1px solid var(--line)}
  .v226-stack tbody tr td:last-child{border-bottom:0}
  .v226-stack tbody td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--accent)}
  .v226-stack tbody td:first-child{background:var(--surface-2);color:var(--text);padding:12px 15px}
  .v226-stack tbody td:first-child::before{display:none}
}
