.app-header{border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;position:sticky;top:0}.app-header-inner{width:100%;max-width:var(--content-max);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:8px 22px;display:flex}@media (width<=720px){.app-header-inner{padding:8px 14px}}.brand{align-items:center;gap:8px;display:flex}.brand-home{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;margin:0;padding:0;display:inline-flex}.brand-home:hover{opacity:.7}.brand-home:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:3px}.brand-mark{width:auto;height:40px;color:var(--text);display:block}.app-header-actions{align-items:center;gap:10px;display:flex}.app-nav-link{width:36px;height:36px;color:var(--text-dim);border:1px solid var(--border-strong);background-color:#0000;border-radius:9px;justify-content:center;align-items:center;text-decoration:none;transition:all .12s;display:inline-flex}.app-nav-link svg,.lang-switcher svg{flex-shrink:0;display:block}.app-nav-link:hover{color:var(--text);border-color:var(--text-dim)}.app-nav-link:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:1px}.lang-switcher{appearance:none;width:36px;height:36px;color:var(--text-dim);border:1px solid var(--border-strong);cursor:pointer;background-color:#0000;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:all .12s;display:inline-flex}.lang-switcher:hover{color:var(--text);border-color:var(--text-dim)}.lang-switcher:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:1px}.theme-toggle{appearance:none;width:36px;height:36px;color:var(--text-dim);border:1px solid var(--border-strong);cursor:pointer;background-color:#0000;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:all .12s;display:inline-flex}.theme-toggle svg{display:block}.theme-toggle:hover{color:var(--text);border-color:var(--text-dim)}.theme-toggle:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:1px}.app-footer{width:100%;max-width:var(--content-max);justify-content:center;align-items:center;gap:10px;margin:0 auto;padding:12px 22px 24px;display:flex}.app-footer-credit{color:var(--text-muted);font-size:12px}.app-footer-credit a{color:var(--text-dim);text-decoration:none}.app-footer-credit a:hover{text-decoration:underline}.app-version{color:var(--text-muted);font-size:11px;font-family:var(--mono)}@media (width<=720px){.app-footer{padding:10px}}.app{flex-direction:column;min-height:100%;display:flex}.app-main{width:100%;max-width:var(--content-max);flex:1;margin:0 auto;padding:22px}.screen{gap:var(--gap);flex-direction:column;display:flex}.screen-title{font-size:22px}.screen-subtitle{color:var(--text-dim);font-size:14px;line-height:1.6}@media (width<=720px){.app-main{padding:14px}}.app-route-loading{justify-content:center;padding:80px 0;display:flex}:root{--bg:#f4f6fa;--bg-elev:#fff;--surface:#fff;--surface-2:#eef1f6;--border:#0f172a1a;--border-strong:#0f172a2e;--text:#1a2233;--text-dim:#5b6472;--text-muted:#9aa3b2;--long:#089981;--long-dim:#0899811f;--short:#f23645;--short-dim:#f236451f;--skip:#6b7280;--accent:#2563eb;--accent-dim:#2563eb1a;--warn:#d97706;--radius:12px;--radius-sm:8px;--gap:16px;--shadow:0 6px 22px #0f172a14;--content-max:clamp(1180px, 85vw, 1800px);--font:"Inter", "Segoe UI", system-ui, -apple-system, "Noto Sans TC", "Microsoft JhengHei", sans-serif;--mono:"JetBrains Mono", "SF Mono", "Consolas", monospace;--glow:#fff;--watermark:#0f172a0f;--toolbar-bg:#ffffffe6;--header-bg:#ffffffb8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#1a2236;--bg-elev:#232c42;--surface:#232c42;--surface-2:#2c364e;--border:#e2e8f01a;--border-strong:#e2e8f02e;--text:#e6eaf2;--text-dim:#9aa3b5;--text-muted:#667084;--long-dim:#0899812e;--short-dim:#f236452e;--accent:#3b82f6;--accent-dim:#3b82f629;--warn:#f59e0b;--shadow:0 6px 22px #00000073;--glow:#2e3a57;--watermark:#e6eaf20d;--toolbar-bg:#232c42e6;--header-bg:#1a2236b8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{touch-action:manipulation}body{background:radial-gradient(1200px 600px at 50% -10%, var(--glow) 0%, transparent 65%) no-repeat, var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input,select{font-family:inherit}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:700}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:12px 18px;font-size:15px;font-weight:600;transition:transform 60ms,filter .15s,background .15s,border-color .15s}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:#0000}.btn-lg{padding:15px 26px;font-size:16px}.btn-block{width:100%}.btn-ghost{border-color:var(--border);color:var(--text-dim);background:0 0}.btn-long{background:var(--long-dim);border-color:var(--long);color:var(--long)}.btn-short{background:var(--short-dim);border-color:var(--short);color:var(--short)}.btn-skip{border-color:var(--border-strong);color:var(--text-dim);background:0 0}.btn-long.is-active{background:var(--long);color:#fff}.btn-short.is-active{background:var(--short);color:#fff}.btn-skip.is-active{background:var(--skip);color:#fff;border-color:var(--skip)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--text-dim);font-size:13px;font-weight:600}.input{background:var(--bg-elev);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);font-size:15px;font-family:var(--mono);width:100%;padding:11px 12px}.input:focus{border-color:var(--accent);outline:none}.input:read-only{color:var(--text-dim);background:var(--surface)}.input:disabled{color:var(--text-muted);background:var(--surface-2);cursor:not-allowed}.badge{border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.badge.flat{color:var(--text-dim)}.pos{color:var(--long)}.neg{color:var(--short)}.flat{color:var(--text-dim)}.mono{font-family:var(--mono)}.chart-wrap{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);width:100%;position:relative;overflow:hidden}.chart-canvas{position:absolute;inset:0}.chart-canvas.is-level-hover div{cursor:row-resize!important}.chart-watermark{pointer-events:none;letter-spacing:.08em;color:var(--watermark);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:clamp(28px,6vw,64px);font-weight:800;display:flex;position:absolute;inset:0}.chart-draw-toolbar{z-index:5;flex-wrap:wrap;gap:4px;display:flex;position:absolute;top:8px;left:8px}.chart-draw-toolbar button{appearance:none;border:1px solid var(--border-strong);background:var(--toolbar-bg);color:var(--text-dim);cursor:pointer;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:600}.chart-draw-toolbar button:hover{color:var(--text);border-color:var(--text-dim)}.chart-draw-toolbar button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}@media (width<=880px){.chart-draw-toolbar{display:none}}.spinner{border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:.25s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
