/* 自有介面基準；不套用供應商遊戲文件，避免干擾遊戲排版與時鐘。 */
html:has(>body.app-ui){font-size:16px}
body.app-ui{font-size:14px;font-family:var(--app-font);color:var(--app-ink);background:var(--app-bg);-webkit-font-smoothing:antialiased;accent-color:var(--app-accent)}
.app-ui *{box-sizing:border-box}.app-ui :is(button,input,select,textarea){font-family:inherit}.app-ui :is(input,textarea){caret-color:var(--app-accent)}
.app-ui :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--app-focus);outline-offset:3px}
.app-ui ::selection{background:var(--app-accent);color:var(--app-on-accent)}
.app-ui :is(button,a,input,select){touch-action:manipulation}.app-ui a{text-underline-offset:4px}
.app-ui :is(button,input:not([type=checkbox]):not([type=radio]):not([type=range]),select){min-height:var(--app-control-height)}
.app-ui :is(button,[role=button],input,select,textarea){border-radius:var(--app-radius-control)}
.app-ui :is(button,[role=button]){transition:background-color var(--app-motion-fast) ease,border-color var(--app-motion-fast) ease,color var(--app-motion-fast) ease,transform var(--app-motion-fast) var(--app-ease-out)}
.app-ui :is(button,[role=button]):disabled{cursor:not-allowed;opacity:.55}.app-ui :is(th,td,output,time){font-variant-numeric:tabular-nums}
.app-ui :is(h1,h2,h3){text-wrap:balance}.app-ui p{line-height:1.7}.app-ui :is(input,select,textarea)::placeholder{color:var(--app-muted);opacity:1}
.app-ui :is(dialog,[popover]){background:var(--app-surface);color:var(--app-ink);border:1px solid var(--app-line);border-radius:var(--app-radius-dialog);box-shadow:var(--app-shadow)}
.app-ui dialog::backdrop{background:var(--app-overlay);backdrop-filter:none}
.app-ui :is(.eyebrow,.kicker){display:none}.app-ui .app-empty{padding:var(--app-space-8);color:var(--app-muted);text-align:center}
@media(hover:hover) and (pointer:fine){.app-ui :is(button,[role=button]):not(:disabled):active{transform:scale(.98)}}
html:has(:focus-visible) .app-ui :is(button,a,input,select,summary){transition:none}
@media(max-width:680px){.app-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px}}
@media(prefers-reduced-motion:reduce){.app-ui :is(button,[role=button]):active{transform:none!important}}
html[data-reduced-motion=true] .app-ui :is(button,[role=button]):active{transform:none!important}

/* 真實請求的分析狀態；只在等待回應時掃描，不製造進度或最低等待時間。 */
.app-processing{display:flex;align-items:center;gap:var(--app-space-3);padding:var(--app-space-4) 0;color:var(--app-ink);min-height:84px}
.app-processing>span:last-of-type{min-width:0;flex:1}.app-processing b{display:block;font-size:var(--app-text-sm);line-height:1.5}.app-processing small{display:block;color:var(--app-muted);font-size:var(--app-text-xs);line-height:1.6;margin-top:4px}
.app-processing[data-state=error] b{color:var(--app-danger)}.app-processing[data-state=ready] b{color:var(--app-success)}
.app-analysis-eye{width:48px;height:40px;display:grid;place-items:center;flex-shrink:0;color:var(--app-muted)}.app-analysis-eye svg{width:48px;stroke:currentColor;stroke-width:1.5}.app-analysis-scan{opacity:0}
[data-state=loading]>.app-analysis-eye{color:var(--app-accent)}[data-state=loading] .app-analysis-scan{opacity:1;animation:app-analysis-scan 1.1s var(--app-ease-in-out) infinite alternate}
@keyframes app-analysis-scan{from{transform:translateX(-12px);opacity:.35}to{transform:translateX(12px);opacity:1}}
.workspace-loading-visual{display:flex;align-items:center;gap:6px;height:64px;justify-content:center;margin-bottom:var(--app-space-6)}.workspace-loading-visual span{width:8px;height:32px;background:var(--app-accent);border-radius:4px;animation:app-workspace-load 1s var(--app-ease-in-out) infinite alternate}.workspace-loading-visual span:nth-child(2){animation-delay:.15s}.workspace-loading-visual span:nth-child(3){animation-delay:.3s}
@keyframes app-workspace-load{from{transform:scaleY(.35);opacity:.35}to{transform:scaleY(1);opacity:1}}
.app-ui :is(button,[role=button]):not(:disabled):active{transform:scale(.98)}
.app-ui :is(.primary,[data-variant=default]){font-weight:750}
.app-ui :is(dialog,[popover]){transition:opacity var(--app-motion-dialog) var(--app-ease-out),transform var(--app-motion-dialog) var(--app-ease-out)}
@starting-style{.app-ui dialog[open]{opacity:0;transform:translateY(8px) scale(.98)}}
html:has(:focus-visible) .app-ui dialog{transition:none}
@media(prefers-reduced-motion:reduce){.app-processing *,.workspace-loading-visual span,.app-ui dialog{animation:none!important;transition:none!important;transform:none!important}.app-analysis-scan{display:none}}
html[data-reduced-motion=true] :is(.app-processing,.workspace-loading-visual,.app-ui dialog) *{animation:none!important;transition:none!important;transform:none!important}
