/* 監視器判讀長文的元件樣式（官網 CSP 禁 inline style，所以獨立成檔；選擇器都限在 .cv 內）*/
.cv{--ink-2:#46463F;--dark:#1B1B1B;--accent:#C8601E;--accent-soft:rgba(200,96,30,.12);--r-img:10px;--r-el:14px;--shadow:0 10px 26px rgba(0,0,0,.10)}
.cv .axis .park{left:0.8%;width:88.1%}
.cv .axis .lab.l0{left:0%}
.cv .axis .lab.l25{left:25%}
.cv .axis .lab.l50{left:50%}
.cv .axis .lab.l75{left:75%}
.cv .axis .lab.l100{left:100%}
.cv .callout p[data-gap]{margin-top:12px}
.cv .cmp{--x:50%}
.cv button:focus-visible,.cv summary:focus-visible,.cv input:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.cv .footnote,.cv footer{padding:28px 0 8px;border-top:1px solid var(--line);margin-top:30px;font-size:15px;color:var(--muted);line-height:1.8}
.cv p.open{color:var(--ink);font-size:18px}
.cv .note{font-size:15px;color:var(--muted);line-height:1.8}
.cv .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 22px}
.cv .stat{background:var(--dark);color:#F4F4F2;border-radius:var(--r-el);padding:16px 12px;text-align:center}
.cv .stat b{display:block;font-family:var(--display);font-size:clamp(28px,7vw,40px);line-height:1.2;font-weight:400}
.cv .stat small{display:block;font-size:15px;color:#C9C9C4;line-height:1.5;margin-top:4px}
.cv .callout{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--dark);border-radius:var(--r-el);padding:16px 20px;margin:18px 0}
.cv .callout p{margin:0 0 8px}
.cv .callout p:last-child{margin:0}
.cv .callout .ct{font-weight:700;color:var(--ink);margin-bottom:6px}
.cv .callout.warn{border-left-color:var(--accent)}
.cv .callout.pit{border-left-color:#8A6D3B}
.cv figure{margin:20px 0 24px}
.cv figure img{width:100%;height:auto;display:block;border-radius:var(--r-img);box-shadow:var(--shadow)}
.cv figcaption{font-size:15px;color:var(--muted);margin-top:8px;line-height:1.7}
.cv figure.ill figcaption{color:var(--ink-2)}
.cv figure.ill figcaption b{color:var(--ink)}
.cv ol.flow{list-style:none;padding:0;margin:18px 0;counter-reset:f}
.cv ol.flow li{position:relative;padding:12px 0 12px 52px;border-bottom:1px dashed var(--line);counter-increment:f}
.cv ol.flow li:last-child{border-bottom:0}
.cv ol.flow li::before{content:counter(f);position:absolute;left:0;top:12px;width:36px;height:36px;border-radius:999px;background:var(--dark);color:#F4F4F2;font-family:var(--display);display:flex;align-items:center;justify-content:center;font-size:17px}
.cv ol.flow b{display:block;color:var(--ink)}
.cv ol.flow span{color:var(--ink-2)}
.cv .pb{margin:14px 0 20px}
.cv .pb .ph{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#2A2A28;color:#E8E8E3;border-radius:var(--r-el) var(--r-el) 0 0;padding:4px 6px 4px 18px;font-size:15px}
.cv pre.prompt{white-space:pre-wrap;word-break:break-word;background:var(--dark);color:#F2F2EE;border-radius:0 0 var(--r-el) var(--r-el);padding:16px 18px;font-family:var(--serif);font-size:16px;line-height:1.85;margin:0}
.cv .copy{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#F4F4F2;font:inherit;font-size:15px;cursor:pointer;transition:transform .18s ease,background .18s ease}
.cv .copy:active{transform:scale(.98)}
@media (hover:hover){
.cv .copy:hover{background:rgba(255,255,255,.08)}
}
.cv .fill{color:#F0B184}
.cv .tw{overflow-x:auto;margin:12px 0 8px}
.cv table{width:100%;border-collapse:collapse;font-size:16px}
.cv th,.cv td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.cv th{font-weight:700;color:var(--ink);white-space:nowrap}
.cv td{color:var(--ink-2)}
.cv td.t{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.cv table.duty td:nth-child(2),.cv table.duty td:nth-child(3){text-align:center;font-family:var(--display);font-size:18px}
.cv table.duty td .who{display:none}
.cv td .ai{color:var(--accent)}
.cv .pipe{background:var(--card);border:1px solid var(--line);border-radius:var(--r-el);padding:18px 18px 8px;margin:18px 0 22px}
.cv .strip{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;margin:4px 0 14px}
.cv .strip i{display:block;aspect-ratio:3/4;border-radius:2px;background:#D6D6D1;transition:background .25s ease,transform .25s ease}
.cv .strip i.scan{background:#9C9C96}
.cv .strip i.hit{background:var(--accent);transform:translateY(-3px)}
.cv .pipe ol{list-style:none;margin:0;padding:0}
.cv .pipe li{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:10px 0;border-top:1px dashed var(--line);transition:opacity .35s ease}
.cv .pipe.play li{opacity:.35}
.cv .pipe.play li.on{opacity:1}
.cv .pipe li .d{width:36px;height:36px;border-radius:999px;background:var(--dark);color:#F4F4F2;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:16px;transition:background .35s ease}
.cv .pipe.play li .d{background:#CFCFCA}
.cv .pipe.play li.on .d{background:var(--dark)}
.cv .pipe li b{display:block;color:var(--ink)}
.cv .pipe li span{color:var(--ink-2);font-size:16px}
.cv .pipe .cnt{display:flex;gap:18px;flex-wrap:wrap;font-size:15px;color:var(--muted);padding:8px 0 10px}
.cv .pipe .cnt b{font-family:var(--display);font-size:24px;color:var(--ink);font-weight:400;margin-right:4px}
.cv .tl{background:var(--card);border:1px solid var(--line);border-radius:var(--r-el);padding:16px 16px 18px;margin:18px 0 22px}
.cv .axis{position:relative;height:46px;margin:6px 6px 8px}
.cv .axis .bar{position:absolute;left:0;right:0;top:20px;height:4px;border-radius:4px;background:#D6D6D1}
.cv .axis .park{position:absolute;top:20px;height:4px;background:var(--dark);border-radius:4px}
.cv .axis .dot{position:absolute;top:14px;width:16px;height:16px;margin-left:-8px;border-radius:999px;background:var(--card);border:3px solid var(--dark);transition:transform .2s ease,background .2s ease}
.cv .axis .dot.ev{border-color:var(--accent)}
.cv .axis .dot.on{background:var(--accent);border-color:var(--accent);transform:scale(1.35)}
.cv .axis .lab{position:absolute;top:30px;font-size:15px;color:var(--muted);transform:translateX(-50%)}
.cv .chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}
.cv .chips button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:15px;font-variant-numeric:tabular-nums;cursor:pointer}
.cv .chips button[aria-pressed=true]{background:var(--dark);color:#F4F4F2;border-color:var(--dark)}
.cv .tl .pane img{width:100%;height:auto;display:block;border-radius:var(--r-img)}
.cv .tl .pane .noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:var(--r-img);background:#DADAD5;color:var(--muted);font-size:15px;text-align:center;padding:12px}
.cv .tl .pane p{margin:10px 0 0;color:var(--ink)}
.cv .cmp{position:relative;border-radius:var(--r-img);overflow:hidden;box-shadow:var(--shadow);margin:18px 0 0;touch-action:pan-y}
.cv .cmp img{display:block;width:100%;height:auto}
.cv .cmp .before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.cv .cmp .rule{position:absolute;top:0;bottom:0;left:var(--x,50%);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.cv .cmp .tag{position:absolute;bottom:10px;font-size:15px;background:rgba(17,17,17,.78);color:#fff;padding:2px 10px;border-radius:999px}
.cv .cmp .tag.l{left:10px}
.cv .cmp .tag.r{right:10px}
.cv .cmpctl{display:flex;align-items:center;gap:12px;margin:8px 0 20px}
.cv .cmpctl input{flex:1;height:44px;accent-color:var(--accent)}
.cv .cmpctl button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font:inherit;font-size:15px;cursor:pointer;color:var(--ink)}
.cv .fix{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.cv .fix:last-child{border-bottom:0}
.cv .fix .bad{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(200,96,30,.6)}
.cv .fix .good{color:var(--ink)}
.cv .fix .why{font-size:15px;color:var(--muted)}
.cv ul.check{list-style:none;padding:0;margin:10px 0 18px}
.cv ul.check li{position:relative;padding:6px 0 6px 32px;color:var(--ink-2)}
.cv ul.check li::before{content:"";position:absolute;left:2px;top:13px;width:16px;height:16px;border:2px solid var(--dark);border-radius:4px}
.cv details.qa{background:var(--card);border:1px solid var(--line);border-radius:var(--r-el);margin:10px 0;padding:0 18px}
.cv details.qa summary{min-height:48px;display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;list-style:none;padding:8px 0;color:var(--ink)}
.cv details.qa summary::-webkit-details-marker{display:none}
.cv details.qa summary::after{content:"＋";margin-left:auto;color:var(--muted)}
.cv details.qa[open] summary::after{content:"－"}
.cv details.qa>div{padding:0 0 12px}
.cv code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;background:rgba(0,0,0,.06);padding:1px 6px;border-radius:6px;word-break:break-all}
.cv .end p{color:var(--ink)}
.cv .sign{font-family:var(--display);color:var(--muted);text-align:right;margin-top:18px}
.cv ol.refs{padding-left:1.3em;font-size:15px;color:var(--muted)}
.cv ol.refs li{margin:6px 0;word-break:break-word}
.cv ol.refs a{color:var(--ink-2)}
@media (max-width:720px){
.cv .stats{gap:8px}
.cv .stat{padding:14px 6px}
.cv table.stack,.cv table.stack tbody,.cv table.stack tr,.cv table.stack td{display:block}
.cv table.stack thead{display:none}
.cv table.stack tr{padding:10px 0;border-bottom:1px solid var(--line)}
.cv table.stack td{border:0;padding:2px 0;text-align:left!important;font-family:var(--serif)!important;font-size:16px!important}
.cv table.stack td.t{font-weight:700}
.cv table.duty td .who{display:inline;color:var(--muted)}
.cv table.duty td:empty{display:none}
.cv .strip{grid-template-columns:repeat(16,1fr)}
.cv .strip i:nth-child(n+17){display:none}
}

@media (prefers-reduced-motion:reduce){
.cv *,.cv *::before,.cv *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important}
}
.cv strong{font-weight:700;color:var(--ink)}
.cv mark{background:linear-gradient(transparent 56%,var(--accent-soft) 56%);color:inherit;padding:0 .08em}
.cv .vp{background:var(--card);border:1px solid var(--line);border-radius:var(--r-el);padding:16px 16px 18px;margin:18px 0 22px}
.cv .vp .chips{margin:0 0 12px}
.cv .vbox{aspect-ratio:16/9;background:#111;border-radius:var(--r-img);overflow:hidden}
.cv .vbox video{width:100%;height:100%;display:block;object-fit:contain;cursor:pointer}
.cv .vp .bar{width:100%;height:44px;margin:6px 0 0;accent-color:var(--accent);cursor:pointer}
.cv .ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cv .ctl button{min-height:44px;min-width:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:15px;cursor:pointer}
.cv .ctl button.on{background:var(--dark);color:#F4F4F2;border-color:var(--dark)}
.cv .ctl .tc{margin-left:auto;font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.cv .vp .vd{margin:10px 0 0}
.cv p.last{margin-top:28px;padding:18px 20px;border-left:3px solid var(--accent);background:var(--card);border-radius:0 var(--r-el) var(--r-el) 0;font-weight:700;line-height:1.85}

/* 兩週花活長文追加樣式 */
.cv p.part{margin:56px 0 4px;font-family:var(--display);font-size:15px;letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}
.cv figure.sheet img{width:100%;height:auto;border-radius:var(--r-el);background:var(--card)}
.cv p.cta-line{text-align:center;margin:22px 0}
.cv a.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;text-decoration:none}
.cv a.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.cv p.thanks{font-size:14px;color:var(--muted);margin-top:24px}
.sq .sq-ba__caption,.sq .sq-hint,.sq .sq-cost__row,.sq .sq-cost__save,.sq .sq-cost__note,.sq .sq-cost__label,.cv p.thanks{font-size:15px}
/* 表情包畫廊：橫向捲動卡片＋燈箱（.sq-g／.sq-gd；動態數值一律由 extra.js 用 CSSOM 寫入） */
html.sq-gd-lock{overflow:hidden}
.cv .sq-g{margin:22px 0 6px;min-width:0}
.cv .sq-g__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}
.cv .sq-g__titles{min-width:0}
.cv .sq-g__title{margin:0;font-family:var(--display);font-size:20px;line-height:1.4;color:var(--ink)}
.cv .sq-g__hint{margin:0;font-size:15px;line-height:1.6;color:var(--muted)}
.cv .sq-g__nav{display:flex;gap:8px;flex:none}
.cv .sq-g__arrow,.cv .sq-gd__btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-size:15px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cv .sq-g__arrow{width:44px;padding:0;font-size:26px;padding-bottom:3px}
.cv .sq-g__arrow:disabled{opacity:.35;cursor:default}
.cv .sq-g__list{--g:10px;--n:2;--vis:2.4;display:flex;gap:var(--g);margin:0;padding:6px 2px 12px;list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.cv .sq-g__list>li{flex:0 0 calc((100% - var(--g) * var(--n)) / var(--vis));min-width:0;margin:0;padding:0;list-style:none;scroll-snap-align:start;display:flex}
@media (min-width:480px){.cv .sq-g__list{--n:3;--vis:3.4}}
@media (min-width:720px){.cv .sq-g__list{--n:4;--vis:4.4}}
.cv .sq-g__card{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;width:100%;padding:8px 6px 10px;border:1px solid var(--line);border-radius:var(--r-el);background:#fff;color:var(--ink);font:inherit;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cv .sq-g__media{display:block;position:relative;width:100%;aspect-ratio:2/3;overflow:hidden}
.cv .sq-g__media img{position:absolute;inset:0}
.cv .sq-g__card img,.cv .sq-gd__img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0;box-shadow:none;margin:0}
.cv .sq-g__name{display:block;margin-top:6px;font-size:15px;line-height:1.5;color:var(--ink)}
.cv .sq-g__card:focus-visible,.cv .sq-g__arrow:focus-visible,.cv .sq-gd__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cv p.gcap{font-size:15px;color:var(--ink-2);line-height:1.7;margin:8px 0 24px}
.cv p.gcap b{color:var(--ink)}
@media (hover:hover){.cv .sq-g__card:hover{border-color:var(--ink)}.cv .sq-g__arrow:not(:disabled):hover,.cv .sq-gd__btn:hover{border-color:var(--ink)}}
.cv dialog.sq-gd{width:min(92vw,520px);max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--bg);color:var(--ink);overflow:hidden}
.cv dialog.sq-gd::backdrop{background:rgba(17,17,17,.62)}
.cv .sq-gd__in{display:flex;flex-direction:column;gap:10px;padding:12px;max-height:calc(100dvh - 24px)}
.cv .sq-gd__stage{flex:1 1 auto;min-height:0;height:min(68dvh,640px);background:#fff;border-radius:var(--r-el);touch-action:pan-y;user-select:none;-webkit-user-select:none}
.cv .sq-gd__img{padding:8px;-webkit-user-drag:none;transition:opacity .18s}
.cv .sq-gd__img.is-loading{opacity:.3}
.cv .sq-gd__cap{margin:0;display:flex;align-items:baseline;justify-content:center;gap:12px;font-size:18px;line-height:1.5}
.cv .sq-gd__cap small{font-size:15px;color:var(--muted)}
.cv .sq-gd__bar{display:flex;gap:8px}
.cv .sq-gd__btn{flex:1 1 0}
@media (prefers-reduced-motion:reduce){.cv .sq-gd__img{transition:none}}
.cv figure.demo video{display:block;width:100%;max-width:480px;height:auto;margin:0 auto;border-radius:var(--r-el);background:#1b1b1b}
.cv figure.ill img[height="1080"]{display:block;width:100%;max-width:440px;height:auto;margin-left:auto;margin-right:auto}
