:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-card: #16161f;--bg-card-hover: #1c1c28;--border-primary: #2a2a3a;--border-secondary: #3a3a4a;--text-primary: #f0f0f5;--text-secondary: #a0a0b0;--text-muted: #606070;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-green: #10b981;--accent-green-dim: rgba(16, 185, 129, .15);--accent-red: #ef4444;--accent-red-dim: rgba(239, 68, 68, .15);--accent-yellow: #f59e0b;--accent-yellow-dim: rgba(245, 158, 11, .15);--accent-purple: #8b5cf6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--transition-fast: .15s ease;--transition-normal: .25s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:var(--bg-primary)}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}input,select,textarea{font-family:inherit;font-size:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-card-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.live-dot{width:8px;height:8px;background:var(--accent-green);border-radius:50%;animation:live-pulse 2s ease-in-out infinite}@keyframes flash-green{0%{background-color:var(--accent-green-dim)}to{background-color:transparent}}@keyframes flash-red{0%{background-color:var(--accent-red-dim)}to{background-color:transparent}}.price-up{animation:flash-green .5s ease-out}.price-down{animation:flash-red .5s ease-out}.text-green{color:var(--accent-green)}.text-red{color:var(--accent-red)}.text-yellow{color:var(--accent-yellow)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-mono{font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-variant-numeric:tabular-nums}.trading-simulator{padding:1.5rem;background:#1a1a1a;border-radius:8px;border:1px solid #333;position:relative}.trading-simulator .widget-id{position:absolute;top:8px;right:8px;font-size:.625rem;font-weight:600;color:var(--text-muted, #666);background:var(--bg-tertiary, #2a2a2a);padding:2px 6px;border-radius:4px;opacity:.7;z-index:5}.trading-simulator .mini-widget-id{position:absolute;top:4px;right:4px;font-size:.5rem;font-weight:500;color:var(--text-muted, #666);opacity:.6;z-index:5}.trading-simulator h2{margin:0 0 .25rem;font-size:1.5rem}.trading-simulator .subtitle{color:#888;margin:0 0 1.5rem}.sim-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.control-group{display:flex;align-items:center;gap:.5rem}.control-group select{padding:.5rem;border-radius:4px;border:1px solid #444;background:#222;color:#fff;font-size:1rem}.sim-controls button{padding:.5rem 1rem;border-radius:4px;border:none;background:#3b82f6;color:#fff;cursor:pointer;transition:background .2s}.sim-controls button:hover:not(:disabled){background:#2563eb}.sim-controls button:disabled{background:#444;cursor:not-allowed}.sim-controls button.secondary{background:#374151}.sim-controls button.secondary:hover{background:#4b5563}.data-info{color:#666;font-size:.875rem;margin-bottom:1rem}.loading{padding:2rem;text-align:center;color:#888}.backtest-result{margin-top:1.5rem}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.result-header h3{margin:0}.viability{padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500}.viability.viable{background:#1a472a;color:#4ade80}.viability.not-viable{background:#4a1a1a;color:#f87171}.params-display{display:flex;gap:1rem;flex-wrap:wrap;padding:.75rem;background:#222;border-radius:4px;margin-bottom:1rem;font-size:.875rem;color:#888}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:#222;padding:1rem;border-radius:8px;text-align:center}.stat-label{display:block;font-size:.75rem;color:#888;margin-bottom:.25rem}.stat-value{font-size:1.25rem;font-weight:600}.stat-value.positive{color:#4ade80}.stat-value.negative{color:#f87171}.pattern-stats{margin-bottom:1.5rem}.pattern-stats h4{margin:0 0 .75rem;font-size:1rem}.pattern-stats table,.trades-list table,.optimization-results table{width:100%;border-collapse:collapse;font-size:.875rem}.pattern-stats th,.trades-list th,.optimization-results th{text-align:left;padding:.5rem;background:#222;border-bottom:1px solid #333;font-weight:500;color:#888}.pattern-stats td,.trades-list td,.optimization-results td{padding:.5rem;border-bottom:1px solid #2a2a2a}.pattern-stats tr.profitable{background:#22c55e0d}.pattern-stats tr.unprofitable{background:#f871710d}.positive{color:#4ade80}.negative{color:#f87171}.toggle-trades{padding:.5rem 1rem;border-radius:4px;border:1px solid #444;background:transparent;color:#888;cursor:pointer;font-size:.875rem;margin-bottom:1rem}.toggle-trades:hover{background:#222;color:#fff}.trades-list{max-height:400px;overflow-y:auto;margin-bottom:1rem}.trades-list tr.win{background:#22c55e0d}.trades-list tr.loss{background:#f871710d}.outcome{display:block;font-size:.7rem;color:#666}.more-trades{text-align:center;color:#666;font-size:.875rem;margin-top:.5rem}.interpretation{padding:1rem;background:#1e293b;border-radius:8px;border-left:3px solid #3b82f6}.interpretation h4{margin:0 0 .5rem;font-size:.875rem;color:#94a3b8}.interpretation p{margin:0;font-size:.875rem;color:#cbd5e1;line-height:1.5}.optimization-panel{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #333}.optimization-panel h3{margin:0 0 .5rem}.optimization-panel>p{color:#888;margin:0 0 1rem;font-size:.875rem}.optimization-panel button{padding:.5rem 1rem;border-radius:4px;border:none;background:#8b5cf6;color:#fff;cursor:pointer}.optimization-panel button:hover:not(:disabled){background:#7c3aed}.optimization-panel button:disabled{background:#444;cursor:not-allowed}.optimization-results{margin-top:1rem}.optimization-results h4{margin:0 0 .75rem;font-size:1rem}.optimization-results tr.profitable{background:#22c55e0d}.trade-panel{display:flex;flex-direction:column;height:100%}.mini-widget-id{position:absolute;top:4px;right:4px;font-size:.5rem;color:var(--text-muted);background:var(--bg-secondary);padding:1px 4px;border-radius:2px;font-family:SF Mono,Monaco,monospace;opacity:.6;z-index:5}.trade-panel .widget-body{flex:1;display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto}.mode-toggle{display:flex;gap:var(--space-xs);padding:3px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.mode-toggle button{flex:1;padding:var(--space-sm) var(--space-md);border-radius:4px;font-size:.75rem;font-weight:600;color:var(--text-secondary);transition:all var(--transition-fast)}.mode-toggle button:hover{color:var(--text-primary)}.mode-toggle button.active{color:var(--text-primary);background:var(--bg-card)}.mode-toggle button.test.active{background:var(--accent-purple);color:#fff}.mode-toggle button.live.active{background:var(--accent-green);color:#fff}.account-balance{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-primary)}.balance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.balance-title{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.balance-loading{font-size:.5rem;color:var(--text-muted);opacity:.7}.balance-grid{display:flex;gap:var(--space-lg)}.balance-item{display:flex;align-items:baseline;gap:var(--space-xs)}.balance-item .asset{font-size:.625rem;font-weight:600;color:var(--text-muted)}.balance-item .amount{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary)}.balance-item .avg-price{font-size:.5625rem;font-weight:500;color:var(--text-muted);background:#ffffff0d;padding:2px 6px;border-radius:4px;margin-left:var(--space-xs)}.break-even-section{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary)}.be-header{font-size:.625rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.be-proof{background:#ffffff05;border-radius:var(--radius-sm);padding:var(--space-xs);margin-bottom:var(--space-xs)}.be-proof-row{display:flex;justify-content:space-between;font-size:.5625rem;padding:2px 0}.be-proof-label{color:var(--text-muted)}.be-proof-value{color:var(--text-secondary);font-variant-numeric:tabular-nums}.be-price-breakdown{background:#ffffff05;border-radius:var(--radius-sm);padding:var(--space-xs);margin-bottom:var(--space-xs);font-size:.5625rem}.be-breakdown-header{display:grid;grid-template-columns:50px 1fr 1fr 40px;gap:4px;padding-bottom:4px;border-bottom:1px solid var(--border-primary);margin-bottom:4px;color:var(--text-muted);font-weight:500}.be-breakdown-row{display:grid;grid-template-columns:50px 1fr 1fr 40px;gap:4px;padding:2px 0}.be-breakdown-price{color:var(--text-primary);font-weight:600}.be-breakdown-qty,.be-breakdown-cost{color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right}.be-breakdown-pct{color:var(--accent-blue, #3b82f6);font-weight:600;text-align:right}.be-calc{background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-sm);padding:var(--space-xs);margin-bottom:var(--space-xs);font-family:SF Mono,Monaco,monospace}.be-calc-row{display:flex;justify-content:space-between;font-size:.5625rem;padding:2px 0}.be-calc-formula{color:var(--text-muted)}.be-calc-result{color:var(--accent-blue, #3b82f6);font-weight:600}.be-results{padding-top:var(--space-xs)}.break-even-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:.6875rem}.break-even-row.highlight{background:#ffffff08;margin:0 calc(-1 * var(--space-xs));padding:4px var(--space-xs);border-radius:var(--radius-sm)}.be-label{color:var(--text-muted)}.be-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.be-value.be-target{color:var(--accent-yellow, #eab308)}.be-value.be-profit{color:var(--accent-green)}.be-value.be-loss{color:var(--accent-red)}.be-diff{font-size:.5625rem;font-weight:500;margin-left:var(--space-xs);opacity:.8}.be-comparison{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary)}.be-comparison-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs);font-size:.625rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.be-rate-input{display:flex;align-items:center;gap:4px;font-size:.625rem;color:var(--text-muted)}.be-rate-input input{width:60px;padding:2px 6px;font-size:.625rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);text-align:right}.be-rate-input input:focus{outline:none;border-color:var(--accent-blue, #3b82f6)}.be-rate-live{padding:2px 6px;font-size:.5625rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s}.be-rate-live:hover{background:var(--accent-blue, #3b82f6);border-color:var(--accent-blue, #3b82f6);color:#fff}.be-comparison-body{background:#ffffff05;border-radius:var(--radius-sm);padding:var(--space-xs)}.be-comparison-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.625rem}.be-comparison-row.highlight{background:#ffffff08;margin:2px calc(-1 * var(--space-xs));padding:4px var(--space-xs);border-radius:var(--radius-sm)}.be-comparison-row.result{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border-primary);font-weight:600}.be-comparison-row.result.profit{background:#22c55e1a;margin:var(--space-xs) calc(-1 * var(--space-xs)) calc(-1 * var(--space-xs));padding:var(--space-xs);border-radius:0 0 var(--radius-sm) var(--radius-sm);border-top:none}.be-comparison-row.result.profit .be-comp-value{color:var(--accent-green)}.be-comparison-row.result.loss{background:#ef44441a;margin:var(--space-xs) calc(-1 * var(--space-xs)) calc(-1 * var(--space-xs));padding:var(--space-xs);border-radius:0 0 var(--radius-sm) var(--radius-sm);border-top:none}.be-comparison-row.result.loss .be-comp-value{color:var(--accent-red)}.be-comp-label{color:var(--text-muted)}.be-comp-value{color:var(--text-primary);font-variant-numeric:tabular-nums}.be-comp-pct{font-size:.5625rem;margin-left:4px;opacity:.8}.be-realized{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary)}.be-realized-header{font-size:.625rem;font-weight:600;color:var(--accent-green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.be-realized-body{background:#22c55e0d;border:1px solid rgba(34,197,94,.15);border-radius:var(--radius-sm);padding:var(--space-xs)}.be-realized-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.625rem}.be-realized-row.highlight{background:#ffffff08;margin:2px calc(-1 * var(--space-xs));padding:4px var(--space-xs);border-radius:var(--radius-sm)}.be-realized-row.result{margin-top:var(--space-xs);font-weight:600}.be-realized-row.result.profit{background:#22c55e26;margin:var(--space-xs) calc(-1 * var(--space-xs)) calc(-1 * var(--space-xs));padding:var(--space-xs);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.be-realized-row.result.profit .be-realized-value{color:var(--accent-green)}.be-realized-row.result.loss{background:#ef444426;margin:var(--space-xs) calc(-1 * var(--space-xs)) calc(-1 * var(--space-xs));padding:var(--space-xs);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.be-realized-row.result.loss .be-realized-value{color:var(--accent-red)}.be-realized-label{color:var(--text-muted)}.be-realized-value{color:var(--text-primary);font-variant-numeric:tabular-nums}.be-realized-rate{color:var(--accent-green);font-weight:700}.be-realized-pct{font-size:.5625rem;margin-left:4px;opacity:.8}.be-realized-divider{height:1px;background:var(--border-primary);margin:var(--space-xs) 0}.be-bitflyer-balance{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary)}.be-bf-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.625rem}.be-bf-label{color:var(--text-muted)}.be-bf-value{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.recent-deposit{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border-primary);font-size:.625rem;color:var(--text-muted);display:flex;gap:var(--space-xs)}.recent-deposit .label{color:var(--text-muted)}.recent-deposit .value{color:var(--accent-green);font-weight:500}.recent-deposit .date{color:var(--text-muted);font-weight:400}.balance-item.clickable{cursor:pointer;padding:4px 8px;margin:-4px -8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.balance-item.clickable:hover{background:#ffffff0d}.expand-icon{font-size:.5rem;color:var(--text-muted);margin-left:var(--space-xs)}.deposits-list{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary);max-height:200px;overflow-y:auto}.deposits-header{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-xs)}.deposit-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.6875rem;border-bottom:1px solid rgba(255,255,255,.03)}.deposit-row:last-child{border-bottom:none}.deposit-date{color:var(--text-muted);min-width:100px}.deposit-amount{color:var(--accent-green);font-weight:600;font-variant-numeric:tabular-nums}.deposit-network{color:var(--text-muted);font-size:.5625rem;text-transform:uppercase;background:#ffffff0d;padding:2px 6px;border-radius:4px}.trades-toggle{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-primary);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast)}.trades-toggle:hover{color:var(--text-primary)}.trades-list{margin-top:var(--space-xs);max-height:250px;overflow-y:auto}.trade-row{display:grid;grid-template-columns:90px 40px 1fr 70px 80px;gap:var(--space-xs);align-items:center;padding:4px 0;font-size:.625rem;border-bottom:1px solid rgba(255,255,255,.03)}.trade-row:last-child{border-bottom:none}.trade-date{color:var(--text-muted)}.trade-side{font-weight:700;text-transform:uppercase;font-size:.5625rem}.trade-row.buy .trade-side{color:var(--accent-green)}.trade-row.sell .trade-side{color:var(--accent-red)}.trade-qty{color:var(--text-primary);font-variant-numeric:tabular-nums}.trade-price{color:var(--text-muted);font-variant-numeric:tabular-nums}.trade-total{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.trades-more{text-align:center;padding:var(--space-xs) 0;font-size:.625rem;color:var(--accent-blue);border-top:1px solid var(--border-primary);margin-top:var(--space-xs)}.amount-section{display:flex;flex-direction:column;gap:var(--space-sm)}.amount-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.amount-input-wrapper{position:relative}.amount-input-wrapper input{width:100%;padding:var(--space-md) var(--space-lg);padding-left:2rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums;transition:border-color var(--transition-fast)}.amount-input-wrapper input:focus{outline:none;border-color:var(--accent-blue)}.amount-input-wrapper .currency{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:1rem}.amount-presets{display:flex;gap:var(--space-xs)}.amount-presets button{flex:1;padding:var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary);transition:all var(--transition-fast)}.amount-presets button:hover{border-color:var(--border-secondary);color:var(--text-primary)}.amount-presets button.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.quote-card{background:var(--bg-tertiary);border-radius:var(--radius-md);overflow:hidden;min-height:180px}.quote-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.quote-time{font-size:.625rem;color:var(--text-muted)}.quote-status{display:flex;align-items:center;gap:var(--space-xs);font-size:.625rem;padding:2px 8px;border-radius:4px;background:var(--bg-card);color:var(--text-secondary)}.quote-status.good{background:var(--accent-green-dim);color:var(--accent-green)}.quote-body{padding:var(--space-md)}.conversion-display{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.conversion-side{flex:1;text-align:center;padding:var(--space-md);background:var(--bg-card);border-radius:var(--radius-sm)}.conversion-side .label{font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.conversion-side .value{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.conversion-side.output .value{color:var(--accent-green)}.conversion-arrow{color:var(--text-muted);font-size:1.25rem}.rate-comparison{background:var(--bg-card);border-radius:var(--radius-sm);overflow:hidden;margin-top:var(--space-sm)}.rate-comparison-header{display:flex;justify-content:space-between;align-items:center;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.rate-comparison-header .rate-as-of{font-size:.5rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted);opacity:.7}.rate-comparison-grid{display:flex;flex-direction:column}.rate-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-md);align-items:center;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border-primary)}.rate-row:last-child{border-bottom:none}.rate-row.your-rate{background:#22c55e1a}.rate-row.bank-rate{background:#ef44440d}.rate-label{display:flex;flex-direction:column;gap:1px}.rate-name{font-size:.75rem;font-weight:500;color:var(--text-primary)}.rate-source{font-size:.5rem;color:var(--text-muted)}.rate-value{font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary);min-width:70px;text-align:right}.rate-diff{font-size:.625rem;font-weight:600;padding:2px 6px;border-radius:4px;min-width:55px;text-align:center}.rate-diff.best{background:var(--accent-green);color:#000}.rate-diff.positive{background:#22c55e33;color:var(--accent-green)}.rate-diff.negative{background:#ef444433;color:var(--accent-red)}.rate-diff.neutral{background:var(--bg-tertiary);color:var(--text-muted)}.rate-comparison-footer{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border-top:1px solid var(--border-primary);font-size:.625rem}.rate-comparison-footer .label{color:var(--text-muted);margin-right:var(--space-xs)}.rate-comparison-footer .value{color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums}.fee-breakdown{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.fee-breakdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm);cursor:pointer}.fee-breakdown-header h4{font-size:.75rem;color:var(--text-secondary);font-weight:500}.fee-breakdown-header .toggle{font-size:.75rem;color:var(--text-muted)}.fee-list{display:flex;flex-direction:column;gap:var(--space-xs)}.fee-row{display:flex;justify-content:space-between;font-size:.75rem}.fee-row .label{color:var(--text-muted)}.fee-row .value{color:var(--text-secondary);font-variant-numeric:tabular-nums}.execution-steps{display:flex;flex-direction:column;gap:var(--space-sm)}.step{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.75rem}.step-number{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--bg-card);border-radius:50%;font-size:.625rem;font-weight:600;color:var(--text-muted)}.step-text{flex:1;color:var(--text-secondary)}.step-value{font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.execute-btn{width:100%;padding:var(--space-md);border-radius:var(--radius-md);font-size:1rem;font-weight:600;transition:all var(--transition-fast);margin-top:auto}.execute-btn.test{background:var(--accent-purple);color:#fff}.execute-btn.test:hover:not(:disabled){background:#7c3aed}.execute-btn.live{background:var(--accent-green);color:#fff}.execute-btn.live:hover:not(:disabled){background:#059669}.execute-btn:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.execution-status{padding:var(--space-md);border-radius:var(--radius-md);text-align:center;font-size:.875rem}.execution-status.pending{background:#3b82f626;color:#60a5fa}.execution-status.success{background:var(--accent-green-dim);color:var(--accent-green)}.execution-status.error{background:var(--accent-red-dim);color:var(--accent-red)}.api-config{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.api-config h4{font-size:.875rem;margin-bottom:var(--space-sm)}.config-warning{padding:var(--space-sm);background:var(--accent-yellow-dim);border-radius:var(--radius-sm);font-size:.75rem;color:var(--accent-yellow);margin-bottom:var(--space-md)}.config-section{margin-bottom:var(--space-md)}.config-section h5{font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-xs)}.config-section input{width:100%;padding:var(--space-sm);margin-bottom:var(--space-xs);background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.config-section input:focus{outline:none;border-color:var(--accent-blue)}.config-note{font-size:.625rem;color:var(--text-muted);line-height:1.5}.config-toggle{width:100%;padding:var(--space-sm);background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.75rem;transition:all var(--transition-fast)}.config-toggle:hover{border-color:var(--border-secondary);color:var(--text-secondary)}.quote-loading{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);min-height:180px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.quote-loading .skeleton-row{height:60px;border-radius:var(--radius-sm)}.quote-loading .skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.quote-loading .skeleton-grid>div{height:50px;border-radius:var(--radius-sm)}.book-cost-section{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.book-cost-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.book-cost-header h4{font-size:.75rem;color:var(--text-secondary);font-weight:500;margin:0}.book-cost-header .toggle{font-size:.75rem;color:var(--text-muted)}.book-cost-body{margin-top:var(--space-md)}.book-cost-display{display:flex;flex-direction:column;gap:var(--space-xs)}.book-cost-row{display:flex;justify-content:space-between;font-size:.75rem}.book-cost-row .label{color:var(--text-muted)}.book-cost-row .value{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.book-cost-row .value.positive{color:var(--accent-green)}.book-cost-row .value.negative{color:var(--accent-red)}.book-cost-divider{height:1px;background:var(--border-primary);margin:var(--space-sm) 0}.book-cost-clear,.book-cost-save{width:100%;margin-top:var(--space-md);padding:var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;transition:all var(--transition-fast)}.book-cost-clear{background:transparent;border:1px solid var(--border-primary);color:var(--text-muted)}.book-cost-clear:hover{border-color:var(--accent-red);color:var(--accent-red)}.book-cost-save{background:var(--accent-blue);color:#fff}.book-cost-save:hover:not(:disabled){background:#2563eb}.book-cost-save:disabled{background:var(--bg-card);color:var(--text-muted);cursor:not-allowed}.book-cost-form{display:flex;flex-direction:column;gap:var(--space-sm)}.book-cost-input-row{display:flex;flex-direction:column;gap:var(--space-xs)}.book-cost-input-row label{font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.book-cost-input-row input{padding:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;font-variant-numeric:tabular-nums}.book-cost-input-row input:focus{outline:none;border-color:var(--accent-blue)}.trade-history{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);overflow:hidden;height:100%;display:flex;flex-direction:column}.trade-history .widget-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-primary);position:relative}.trade-history .widget-header h2{font-size:1rem;font-weight:600;margin:0}.trade-history .loading-indicator{font-size:.625rem;color:var(--text-muted)}.trade-history .widget-body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);flex:1;overflow:hidden}.trade-history .not-configured{text-align:center;color:var(--text-muted);padding:var(--space-xl)}.pair-selector{display:flex;gap:var(--space-xs);flex-wrap:wrap}.pair-selector button{padding:6px 12px;font-size:.75rem;font-weight:600;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.pair-selector button:hover{background:var(--bg-primary);color:var(--text-primary)}.pair-selector button.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.trade-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.stat-card{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-primary)}.stat-card.buy{border-left:3px solid var(--accent-green)}.stat-card.sell{border-left:3px solid var(--accent-red)}.stat-card.net{border-left:3px solid var(--accent-blue)}.stat-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.stat-value{font-size:1rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat-sub{font-size:.6875rem;color:var(--text-muted);margin-top:2px}.stat-sub .avg{color:var(--text-secondary)}.trade-list-container{flex:1;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-primary);border-radius:var(--radius-md)}.trade-list-header{display:grid;grid-template-columns:140px 50px 1fr 80px 90px 100px;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.trade-list{flex:1;overflow-y:auto}.trade-list-row{display:grid;grid-template-columns:140px 50px 1fr 80px 90px 100px;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:.75rem;border-bottom:1px solid rgba(255,255,255,.03);transition:background var(--transition-fast)}.trade-list-row:hover{background:#ffffff05}.trade-list-row:last-child{border-bottom:none}.trade-datetime{color:var(--text-muted);font-variant-numeric:tabular-nums}.trade-side{font-weight:700;font-size:.6875rem}.trade-side.buy{color:var(--accent-green)}.trade-side.sell{color:var(--accent-red)}.trade-quantity{color:var(--text-primary);font-variant-numeric:tabular-nums}.trade-price{color:var(--text-secondary);font-variant-numeric:tabular-nums}.trade-total{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.trade-fee{color:var(--text-muted);font-size:.6875rem;font-variant-numeric:tabular-nums}.no-trades{text-align:center;color:var(--text-muted);padding:var(--space-xl)}.account-overview{padding:var(--space-md);max-width:1200px;margin:0 auto}.ao-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.ao-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-xs)}.ao-subtitle{font-size:.75rem;color:var(--text-muted);margin:0}.ao-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs)}.ao-updated{font-size:.625rem;color:var(--text-muted)}.ao-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-sm);margin-bottom:var(--space-lg)}.ao-stat{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-sm)}.ao-stat.primary{border-color:var(--accent-green);background:var(--accent-green-dim, rgba(34, 197, 94, .08))}.ao-stat-label{display:block;font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.ao-stat-value{display:block;font-size:1.125rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ao-stat.primary .ao-stat-value{color:var(--accent-green)}.ao-section{margin-bottom:var(--space-lg)}.ao-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.ao-section-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.ao-section-total{font-size:.75rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.ao-subsection{margin-bottom:var(--space-md)}.ao-subsection h4{font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-xs)}.ao-table-container{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-sm)}.ao-loading,.ao-error,.ao-empty{padding:var(--space-md);text-align:center;font-size:.75rem;color:var(--text-muted)}.ao-error{color:var(--accent-red)}.ao-table{width:100%;border-collapse:collapse;font-size:.75rem}.ao-table th{background:var(--bg-tertiary);padding:var(--space-sm);text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.625rem;letter-spacing:.05em;border-bottom:1px solid var(--border-primary)}.ao-table td{padding:var(--space-sm);border-bottom:1px solid var(--border-primary);vertical-align:middle;font-variant-numeric:tabular-nums}.ao-table tr:last-child td{border-bottom:none}.ao-date{font-weight:500;color:var(--text-primary)}.ao-time{font-size:.625rem;color:var(--text-muted)}.ao-mono{font-family:ui-monospace,monospace;font-size:.6875rem;color:var(--text-muted)}.ao-amount{font-weight:600;color:var(--text-primary)}.ao-usd{font-weight:500;color:var(--accent-green)}.ao-btn{padding:var(--space-xs) var(--space-md);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.ao-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.ao-btn:disabled{opacity:.6;cursor:not-allowed}.confirmed-deposits{padding:1.5rem}.confirmed-deposits h2{margin:0 0 1rem;font-size:1.25rem}.confirmed-deposits table{width:100%;border-collapse:collapse;font-size:.9rem}.confirmed-deposits th,.confirmed-deposits td{padding:.6rem .75rem;border-bottom:1px solid var(--border-color, #333);text-align:left}.confirmed-deposits th{color:var(--text-muted, #888);font-weight:600}.confirmed-deposits .empty{color:var(--text-muted, #888)}.confirmed-deposits.error{color:#f87171}.deposits-manager{padding:var(--space-md);max-width:1200px;margin:0 auto}.dm-header{margin-bottom:var(--space-lg)}.dm-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-xs)}.dm-subtitle{font-size:.75rem;color:var(--text-muted);margin:0}.dm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-sm);margin-bottom:var(--space-md)}.dm-stat{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-sm)}.dm-stat.warning{background:#ef44441a;border-color:#ef44444d}.dm-stat-label{display:block;font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.dm-stat-value{display:block;font-size:1rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.dm-stat.warning .dm-stat-value{color:var(--accent-red)}.dm-actions{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.dm-btn{padding:var(--space-xs) var(--space-md);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.dm-btn.export{background:var(--accent-green);color:#fff;border:none}.dm-btn.export:hover{background:#16a34a}.dm-btn.import{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.dm-btn.import:hover{background:var(--bg-secondary);border-color:var(--accent-blue)}.dm-btn.import-account{background:var(--accent-blue);color:#fff;border:none}.dm-btn.import-account:hover{background:#2563eb}.dm-table-container{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-md)}.dm-loading{padding:var(--space-lg);text-align:center;color:var(--text-muted)}.dm-table{width:100%;border-collapse:collapse;font-size:.75rem}.dm-table th{background:var(--bg-tertiary);padding:var(--space-sm);text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.625rem;letter-spacing:.05em;border-bottom:1px solid var(--border-primary)}.dm-table td{padding:var(--space-sm);border-bottom:1px solid var(--border-primary);vertical-align:middle}.dm-table tr:last-child td{border-bottom:none}.dm-table tr.missing-rate{background:#ef44440d}.dm-date{font-weight:500;color:var(--text-primary)}.dm-time{font-size:.625rem;color:var(--text-muted)}.dm-amount{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.dm-network{color:var(--text-muted);font-size:.625rem}.dm-rate{font-variant-numeric:tabular-nums}.dm-rate input{width:80px;padding:4px 8px;font-size:.75rem;background:var(--bg-tertiary);border:1px solid var(--accent-blue);border-radius:var(--radius-sm);color:var(--text-primary)}.dm-missing{color:var(--accent-red);font-style:italic}.dm-jpy-cost{font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.dm-actions-cell{white-space:nowrap}.dm-action-btn{padding:4px 8px;font-size:.625rem;border-radius:var(--radius-sm);cursor:pointer;margin-right:4px;transition:all .15s}.dm-action-btn.edit{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary)}.dm-action-btn.edit:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.dm-action-btn.save{background:var(--accent-green);border:none;color:#fff}.dm-action-btn.cancel{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-muted)}.dm-action-btn.delete{background:transparent;border:1px solid rgba(239,68,68,.3);color:var(--accent-red);padding:4px 6px}.dm-action-btn.delete:hover{background:#ef44441a}.dm-instructions{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md)}.dm-instructions h3{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm)}.dm-instructions ol{margin:0;padding-left:var(--space-md);font-size:.75rem;color:var(--text-secondary);line-height:1.8}.dm-instructions strong{color:var(--text-primary)}.report-generator{padding:var(--space-md);max-width:1200px;margin:0 auto}.rg-header{margin-bottom:var(--space-lg)}.rg-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-xs)}.rg-subtitle{font-size:.75rem;color:var(--text-muted);margin:0}.rg-controls{display:flex;gap:var(--space-md);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.rg-date-range{display:flex;gap:var(--space-md)}.rg-date-field{display:flex;flex-direction:column;gap:4px}.rg-date-field label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.rg-date-field input,.rg-date-field select{padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;min-width:140px}.rg-date-field input:focus,.rg-date-field select:focus{outline:none;border-color:var(--accent-blue)}.rg-actions{display:flex;gap:var(--space-sm);margin-left:auto}.rg-btn{padding:var(--space-xs) var(--space-md);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border:none}.rg-btn.preview{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.rg-btn.preview:hover{border-color:var(--accent-blue)}.rg-btn.export{background:var(--accent-green);color:#fff}.rg-btn.export:hover{background:#16a34a}.rg-btn.export:disabled{opacity:.6;cursor:not-allowed}.rg-preview{display:flex;flex-direction:column;gap:var(--space-lg)}.rg-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.rg-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md);text-align:center}.rg-card.profit{background:#10b9811a;border-color:#10b9814d}.rg-card.loss{background:#ef44441a;border-color:#ef44444d}.rg-card-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-xs)}.rg-card-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.rg-card.profit .rg-card-value{color:var(--accent-green)}.rg-card.loss .rg-card-value{color:var(--accent-red)}.rg-card-pct{font-size:.75rem;font-weight:500;margin-left:var(--space-xs);opacity:.8}.rg-card-sub{font-size:.625rem;color:var(--text-muted);margin-top:var(--space-xs)}.rg-charts{border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden}.rg-chart{padding:var(--space-md);margin-bottom:var(--space-sm)}.rg-chart:last-child{margin-bottom:0}.rg-chart h3{font-size:.75rem;font-weight:600;color:#1e293b;margin:0 0 var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.rg-no-data{padding:var(--space-xl);text-align:center;color:#64748b}.rg-no-data p{margin:var(--space-xs) 0}.rg-transactions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.rg-tx-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md)}.rg-tx-section h3{font-size:.75rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.rg-table{width:100%;border-collapse:collapse;font-size:.7rem}.rg-table th{background:var(--bg-tertiary);padding:var(--space-xs) var(--space-sm);text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.6rem;letter-spacing:.05em;border-bottom:1px solid var(--border-primary)}.rg-table td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border-primary);color:var(--text-primary)}.rg-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:monospace}.rg-table tr.total{background:var(--bg-tertiary);font-weight:600}.rg-table tr.total td{border-top:2px solid var(--border-primary);padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.rg-table td.more{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--space-xs)}.rg-no-data-text{color:var(--text-muted);font-size:.75rem;text-align:center;padding:var(--space-md)}.rg-table-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md)}.rg-table-section h3{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md)}.rg-table tr.divider td{padding:var(--space-xs);border-bottom:2px solid var(--border-primary)}.rg-table tr.highlight td{background:#3b82f61a;font-weight:600}.rg-table tr.result td{font-weight:700;font-size:.875rem}.rg-table tr.result.profit td{background:#10b98126;color:var(--accent-green)}.rg-table tr.result.loss td{background:#ef444426;color:var(--accent-red)}.rg-btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.rg-btn.secondary:hover{background:var(--bg-secondary);border-color:var(--accent-blue)}.rg-flow-header{background:var(--bg-tertiary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:center}.rg-flow-header h3{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0}.rg-profit-banner{background:linear-gradient(135deg,#10b981,#059669);padding:var(--space-lg);border-radius:var(--radius-md);text-align:center;color:#fff}.rg-profit-banner.loss{background:linear-gradient(135deg,#ef4444,#dc2626)}.rg-profit-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;opacity:.9;margin-bottom:var(--space-xs)}.rg-profit-value{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.rg-profit-pct{font-size:1rem;font-weight:500;margin-left:var(--space-sm);opacity:.9}.rg-proof-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-lg)}.rg-proof-section h3{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md);text-transform:uppercase;letter-spacing:.05em}.rg-proof-section h4{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin:var(--space-md) 0 var(--space-sm)}.rg-proof-steps{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.rg-proof-step{flex:1;display:flex;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.rg-step-num{width:28px;height:28px;background:var(--accent-blue);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0}.rg-step-content{flex:1}.rg-step-title{font-weight:600;font-size:.75rem;color:var(--text-primary);margin-bottom:var(--space-xs)}.rg-step-formula{font-size:.875rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.rg-step-rate{font-size:.7rem;color:var(--text-muted);margin-top:2px}.rg-formula-box{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);overflow-x:auto}.rg-formula-box code{font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem;color:var(--accent-green);white-space:nowrap}.rg-cost-basis,.rg-profit-formula{margin-bottom:var(--space-md)}.rg-remaining{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-md)}.rg-remaining h4{color:var(--accent-blue);margin-top:0}.rg-remaining ul{list-style:none;padding:0;margin:0}.rg-remaining li{padding:var(--space-xs) 0;font-size:.8rem;color:var(--text-secondary)}.rg-remaining li strong{color:var(--text-primary)}.rg-pipeline-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-lg);margin-top:var(--space-lg)}.rg-pipeline-section h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md);text-transform:uppercase;letter-spacing:.05em}.rg-breakeven-banner{display:flex;gap:var(--space-md);padding:var(--space-md);background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.rg-breakeven-item{flex:1;text-align:center;padding:var(--space-sm)}.rg-breakeven-label{display:block;font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-xs)}.rg-breakeven-value{font-size:1.25rem;font-weight:700;color:var(--accent-blue);font-variant-numeric:tabular-nums}.rg-pipeline-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.rg-pipeline-table{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md);overflow-x:auto}.rg-pipeline-table h4{font-size:.75rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm);text-transform:uppercase;letter-spacing:.03em}.rg-pipeline-summary{display:flex;gap:var(--space-md);font-size:.75rem;color:var(--text-secondary);margin-bottom:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-primary)}.rg-pipeline-summary .highlight-remaining{color:var(--accent-blue);font-weight:600}.status-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;text-transform:uppercase}.status-badge.fully_used,.status-badge.fully_sold{background:#10b98133;color:var(--accent-green)}.status-badge.partial{background:#f59e0b33;color:#f59e0b}.status-badge.unused,.status-badge.unsold{background:#3b82f633;color:var(--accent-blue)}.rg-table tr.status-fully_used,.rg-table tr.status-fully_sold{opacity:.7}.rg-table tr.status-partial{background:#f59e0b0d}.rg-table tr.status-unused,.rg-table tr.status-unsold{background:#3b82f60d}.rg-breakeven-explanation{margin-top:var(--space-md);padding:var(--space-md);background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md)}.rg-breakeven-explanation h4{font-size:.75rem;font-weight:600;color:var(--accent-blue);margin:0 0 var(--space-sm)}.rg-breakeven-explanation p{font-size:.8rem;color:var(--text-secondary);margin:0 0 var(--space-xs);line-height:1.5}.rg-breakeven-explanation p:last-child{margin-bottom:0}@media(max-width:1024px){.rg-proof-steps{flex-direction:column}.rg-transactions{grid-template-columns:1fr}.rg-summary-cards{grid-template-columns:repeat(2,1fr)}.rg-pipeline-grid{grid-template-columns:1fr}.rg-breakeven-banner{flex-direction:column}}@media(max-width:768px){.rg-controls{flex-direction:column;align-items:stretch}.rg-date-range{flex-direction:column}.rg-actions{margin-left:0;justify-content:stretch}.rg-actions .rg-btn{flex:1}.rg-summary-cards{grid-template-columns:1fr}}.dashboard{min-height:100vh;display:flex;flex-direction:column}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.login-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:2.5rem;text-align:center;min-width:320px}.login-card h1{margin:0 0 .5rem;font-size:1.75rem}.login-subtitle{color:var(--text-muted);margin:0 0 1.5rem}.login-button{display:inline-block;padding:.75rem 1.5rem;background:#2563eb;color:#fff;text-decoration:none;border-radius:var(--radius-sm);font-weight:600}.logout-button{padding:.4rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer}.viewer-dashboard .dashboard-header{gap:1rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);position:sticky;top:0;z-index:100}.header-brand{display:flex;align-items:center;gap:var(--space-md)}.header-brand h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.header-brand .subtitle{font-size:.75rem;color:var(--text-muted);padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.header-status{display:flex;align-items:center;gap:var(--space-lg)}.connection-badge{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--accent-green-dim);border-radius:var(--radius-sm);font-size:.75rem;color:var(--accent-green)}.connection-badge.error{background:var(--accent-red-dim);color:var(--accent-red)}.connection-badge.loading{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.dashboard-nav{display:flex;gap:var(--space-xs);padding:3px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.dashboard-nav button{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.dashboard-nav button:hover{color:var(--text-primary);background:var(--bg-card-hover)}.dashboard-nav button.active{color:var(--text-primary);background:var(--bg-card);box-shadow:0 1px 3px #0000004d}.dashboard-content{flex:1;padding:var(--space-xl);overflow-y:auto}.widget-grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(12,1fr)}.widget-grid.trade-view{grid-template-rows:auto minmax(500px,max-content);align-items:start}.widget{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-fast)}.widget:hover{border-color:var(--border-secondary)}.widget-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-primary)}.widget-title{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:600;color:var(--text-secondary)}.widget-title .icon{font-size:1rem;opacity:.7}.widget-actions{display:flex;align-items:center;gap:var(--space-sm)}.widget-body{padding:var(--space-lg)}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.ticker-widget{grid-column:span 3}.ticker-content{padding:var(--space-lg)}.ticker-pair{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.ticker-pair .symbol{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.ticker-pair .exchange{font-size:.625rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ticker-price{font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:var(--space-xs);transition:color var(--transition-fast)}.ticker-price.loading{height:2.5rem;width:120px}.ticker-change{display:flex;align-items:center;gap:var(--space-sm);font-size:.75rem}.ticker-change .percent{padding:2px 6px;border-radius:4px;font-weight:600}.ticker-change .percent.positive{background:var(--accent-green-dim);color:var(--accent-green)}.ticker-change .percent.negative{background:var(--accent-red-dim);color:var(--accent-red)}.ticker-change .time{color:var(--text-muted)}.widget-id{position:absolute;top:8px;right:8px;font-size:.625rem;color:var(--text-muted);background:var(--bg-secondary);padding:2px 8px;border-radius:4px;font-family:SF Mono,Monaco,monospace;opacity:.8;z-index:10;border:1px solid var(--border-primary)}.ticker-content{position:relative}.ticker-widget-placeholder{grid-column:span 3}.stat-card{display:flex;flex-direction:column;gap:var(--space-xs)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-value.loading{height:2rem;width:100px}.stat-subtitle{font-size:.75rem;color:var(--text-secondary)}.quick-stats-wrapper{grid-column:span 12;position:relative}.quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.quick-stat{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-lg);transition:all var(--transition-fast)}.quick-stat:hover{border-color:var(--border-secondary);transform:translateY(-1px)}.quick-stat .label{font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-xs)}.quick-stat .value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:var(--space-xs)}.quick-stat .value.loading{height:2rem;width:80%}.quick-stat .change{font-size:.75rem;display:flex;align-items:center;gap:var(--space-xs)}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast)}.icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.icon-btn.active{background:var(--accent-blue);color:#fff}.refresh-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-muted);transition:all var(--transition-fast)}.refresh-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.refresh-btn.loading{opacity:.5;pointer-events:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.refresh-btn.loading .icon{animation:spin 1s linear infinite}.dashboard-footer{padding:var(--space-md) var(--space-xl);background:var(--bg-secondary);border-top:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center}.footer-status{display:flex;align-items:center;gap:var(--space-lg);font-size:.75rem;color:var(--text-muted)}.footer-disclaimer{font-size:.625rem;color:var(--text-muted);max-width:500px;text-align:right}@media(max-width:1200px){.widget-grid{grid-template-columns:repeat(6,1fr)}.span-3,.span-4{grid-column:span 3}.span-6,.span-8{grid-column:span 6}.quick-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.header-status{width:100%;justify-content:space-between}.dashboard-content{padding:var(--space-md)}.widget-grid{grid-template-columns:1fr}.span-3,.span-4,.span-6,.span-8,.span-12{grid-column:span 1}.quick-stats{grid-template-columns:1fr}.ticker-widget{grid-column:span 1}}.conversion-calculator{padding:1.5rem;background:#1a1a1a;border-radius:8px;border:1px solid #333;position:relative}.conversion-calculator .widget-id{position:absolute;top:8px;right:8px;font-size:.625rem;font-weight:600;color:var(--text-muted, #666);background:var(--bg-tertiary, #2a2a2a);padding:2px 6px;border-radius:4px;opacity:.7;z-index:5}.conversion-calculator .mini-widget-id{position:absolute;top:4px;right:4px;font-size:.5rem;font-weight:500;color:var(--text-muted, #666);opacity:.6;z-index:5}.loading-indicator{position:absolute;top:8px;right:40px;display:flex;align-items:center;gap:6px;font-size:.625rem;color:#888;z-index:10;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-indicator .loading-spinner{width:12px;height:12px;border:2px solid #333;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.conversion-calculator h2{margin:0 0 .25rem;font-size:1.5rem}.conversion-calculator .subtitle{color:#888;margin:0 0 1.5rem}.input-section{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.input-section label{font-weight:500}.input-section input{padding:.5rem .75rem;border-radius:4px;border:1px solid #444;background:#222;color:#fff;font-size:1rem;width:150px}.refresh-btn{padding:.5rem 1rem;border-radius:4px;border:none;background:#3b82f6;color:#fff;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:.5rem}.refresh-btn:hover:not(:disabled){background:#2563eb}.refresh-btn:disabled{background:#444;cursor:not-allowed}.refresh-btn:disabled .refresh-icon{animation:spin .8s linear infinite}.refresh-icon{font-size:1rem;display:inline-block}.market-rate{padding:.75rem;background:#222;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.bank-reference{padding:1rem;background:#1e293b;border-radius:8px;border:1px solid #334155;margin-bottom:1.5rem}.bank-reference h3{margin:0 0 .5rem;font-size:1rem;color:#94a3b8}.bank-details{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.bank-amount{font-size:1.25rem;font-weight:600;color:#94a3b8}.bank-rate{color:#64748b;font-size:.875rem}.bank-note{margin:.5rem 0 0;font-size:.75rem;color:#64748b}.routes-section h3{margin:0 0 1rem;font-size:1rem}.routes-section{min-height:300px}.no-data{color:#888;text-align:center;padding:2rem;min-height:240px;display:flex;align-items:center;justify-content:center}.routes-list{display:flex;flex-direction:column;gap:.75rem;min-height:240px}.route-card{background:#222;border:1px solid #333;min-height:76px;border-radius:8px;overflow:hidden;transition:border-color .2s}.route-card.best{border-color:#22c55e}.route-header{display:grid;grid-template-columns:100px 1fr auto auto auto;align-items:center;gap:1rem;padding:1rem;cursor:pointer;transition:background .2s}.route-header:hover{background:#2a2a2a}.route-asset{display:flex;align-items:center;gap:.5rem}.asset-name{font-weight:600;font-size:1.1rem}.best-badge{font-size:.625rem;padding:.125rem .375rem;background:#22c55e;color:#000;border-radius:4px;font-weight:700}.route-result{display:flex;flex-direction:column}.jpy-amount{font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums}.effective-rate{font-size:.75rem;color:#888}.route-fees{text-align:right}.fee-percent{font-size:.875rem;color:#f59e0b}.vs-bank{text-align:right;font-weight:500}.vs-bank.better{color:#22c55e}.vs-bank.worse{color:#ef4444}.vs-bank-percent{display:block;font-size:.75rem;font-weight:400}.expand-icon{color:#666;font-size:.75rem}.route-details{padding:1rem;background:#1a1a1a;border-top:1px solid #333}.step{display:grid;grid-template-columns:24px 1fr auto;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #2a2a2a}.step:last-of-type{border-bottom:none}.step-num{width:24px;height:24px;background:#333;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.step-desc{font-weight:500}.step-detail{text-align:right;font-size:.8rem;color:#888;line-height:1.5}.total-fees{margin-top:1rem;padding-top:.75rem;border-top:1px solid #333;font-weight:600;color:#f59e0b}@media(max-width:768px){.route-header{grid-template-columns:1fr 1fr;gap:.5rem}.route-asset{grid-column:1}.route-result{grid-column:2;text-align:right}.route-fees{grid-column:1}.vs-bank{grid-column:2}.expand-icon{grid-column:2;justify-self:end}}
