:root{--bg-a:#e6f4ff;--bg-b:#f9efe1;--card:#ffffffe0;--text:#132028;--muted:#4a5c66;--accent:#0e7a6d;--accent-2:#0b5ea6;--danger:#b43a2f;--border:#1320281f;--shadow:0 16px 36px #162c3a1f}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 10% 10%, var(--bg-a), transparent 40%), radial-gradient(circle at 90% 0%, #ffe6cf, transparent 35%), linear-gradient(160deg, #f6fbff, var(--bg-b));min-height:100vh;margin:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}body.modal-open{overflow:hidden}.app{gap:16px;max-width:980px;margin:0 auto;padding:24px 16px 40px;display:grid}.hero h1{margin:0;font-size:1.9rem}.hero p{color:var(--muted);margin:8px 0 0}.hero{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.hero-tools{gap:6px;min-width:150px;display:grid}.hero-tools label{color:var(--muted);font-size:.9rem}.github-ribbon{z-index:95;color:#fff;text-align:center;letter-spacing:.03em;width:200px;box-shadow:none;text-transform:uppercase;white-space:nowrap;transform-origin:50%;background:#151513;border:1px solid #ffffff38;padding:10px 0 7px;font-size:.72rem;font-weight:700;text-decoration:none;position:fixed;top:34px;right:-52px;overflow:visible;transform:rotate(45deg)}.github-ribbon:hover{background:#2b2b2b}.github-ribbon-label{display:block}.github-ribbon-octocat{transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(-2px -3px 4px #0000008c);width:98px;height:98px;position:absolute;top:-11%;left:66%;overflow:visible;transform:translate(-50%,-50%)rotate(-46deg)}.github-ribbon-octocat .octo-body,.github-ribbon-octocat .octo-arm{fill:#fff}.github-ribbon-octocat .octo-arm{transform-origin:130px 106px;transform-box:view-box;animation:1.8s ease-in-out infinite octo-wave}@keyframes octo-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-24deg)}40%,80%{transform:rotate(10deg)}}.github-ribbon:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.card{background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow);border-radius:16px;padding:14px}.controls{gap:10px;display:grid}.button-row{flex-wrap:wrap;gap:8px;display:flex}button,select,textarea{font:inherit}button,select{border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 11px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}#startBtn{background:var(--accent);color:#fff;border-color:#0000}#stopBtn{background:var(--danger);color:#fff;border-color:#0000}.status{color:var(--muted);margin:0}.viewer video{object-fit:cover;background:#0a0e11;border-radius:12px;width:100%;min-height:260px;max-height:460px;transform:none}.viewer video.is-mirrored{transform:scaleX(-1)}.viewer{position:relative;overflow:hidden}.scan-guide{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.scan-guide-box{aspect-ratio:1;border:2px solid #ffffffeb;border-radius:18px;width:min(72vw,280px);box-shadow:0 0 0 9999px #0000002e,inset 0 0 0 1px #0f234059}.scan-guide-tip{color:#18324a;text-align:center;background:#ffffffe6;border-radius:999px;margin:0;padding:6px 10px;font-size:.82rem;font-weight:700;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.progress h2,.output h2,.logs h2{margin-top:0}.dashboard,.panel-stack,.scan-stage{gap:16px;display:grid}.progress-bar{background:#ddeaf6;border-radius:999px;width:100%;height:10px;overflow:hidden}#progressFill{background:linear-gradient(90deg, var(--accent-2), var(--accent));width:0%;height:100%;transition:width .2s ease-out}.kv{align-items:center;gap:8px;margin-bottom:8px;display:flex}textarea{border:1px solid var(--border);resize:vertical;background:#fcfdff;border-radius:10px;width:100%;padding:10px}.output{border:1px solid var(--border);background:#ffffffeb}.cardano-panel{background:linear-gradient(170deg,#f4fffbf2,#ffffffeb);border:1px solid #0e7a6d57}#cardanoTxDetails{background:#f6fff9;border-color:#0e7a6d47;min-height:260px}#cardanoTx{background:#f7fbff}.hidden{display:none!important}.overlay-trigger{cursor:zoom-in}.overlay-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:70;background:#08101894;position:fixed;inset:0}.output.overlay-open{z-index:80;cursor:default;width:min(920px,100vw - 24px);max-height:min(88vh,900px);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 24px 52px #00000057}.output.overlay-open textarea{max-height:26vh}pre{color:#d6e6ff;background:#0e1a2a;border-radius:10px;max-height:420px;margin:0;padding:10px;font-size:.86rem;overflow:auto}@media (width>=860px){.hero,.controls,.scan-stage,.dashboard{grid-column:1/-1}.scan-stage{grid-template-columns:minmax(560px,1.8fr) minmax(260px,1fr);align-items:stretch}.scan-stage .viewer video{height:100%;min-height:320px}.scan-stage .progress{align-self:start;position:sticky;top:12px}}@media (width<=720px){.github-ribbon{width:188px;font-size:.62rem;top:28px;right:-60px}.github-ribbon-octocat{width:82px;height:82px;top:-10%;left:65%}.hero{flex-direction:column}.hero-tools{width:100%;max-width:280px}}@media (width>=1180px){.dashboard{grid-template-columns:minmax(560px,1.6fr) minmax(300px,1fr);align-items:start}.panel-center{grid-column:1}.panel-right{grid-column:2;position:sticky;top:12px}}
