:root{--bg: #0d1117;--bg-elev: #161b22;--bg-elev-2: #1c2230;--border: #2a3140;--text: #e6edf3;--text-muted: #8b949e;--accent: #f7931a;--accent-hover: #ffae3d;--success: #2ea043;--success-bg: rgba(46, 160, 67, .15);--danger: #f85149;--danger-bg: rgba(248, 81, 73, .15);--warning: #d29922;--warning-bg: rgba(210, 153, 34, .15);--info: #58a6ff;--info-bg: rgba(88, 166, 255, .15);--muted-bg: rgba(139, 148, 158, .15);--radius: 10px;--radius-sm: 6px;--shadow: 0 4px 16px rgba(0, 0, 0, .3);--mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}code{font-family:var(--mono);font-size:.92em;background:var(--bg-elev-2);padding:1px 6px;border-radius:4px;color:var(--text)}h1,h2,h3{margin:0;font-weight:600}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--text-muted)}.small{font-size:12px}.mt-1{margin-top:.75rem}.row{display:flex;align-items:center}.gap-1{gap:.5rem}.token-gate{min-height:100vh;display:grid;place-items:center;padding:2rem}.token-gate__card{width:100%;max-width:460px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow)}.token-gate__card h1{font-size:20px}.token-gate__card label{display:flex;flex-direction:column;gap:.4rem;font-weight:500}.token-gate__card input{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.6rem .75rem;border-radius:var(--radius-sm);font-family:var(--mono);font-size:13px}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:.75rem;padding:0 .25rem}.brand__icon{width:36px;height:36px;border-radius:8px;background:var(--accent);display:grid;place-items:center;font-weight:700;font-size:20px;color:#fff}.brand__title{font-weight:700;font-size:15px}.brand__subtitle{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav__item{display:block;padding:.55rem .75rem;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:500}.nav__item:hover{background:var(--bg-elev-2);color:var(--text);text-decoration:none}.nav__item.is-active{background:var(--bg-elev-2);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.sidebar__footer{display:flex;flex-direction:column;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.content{padding:1.5rem 2rem 3rem;max-width:1400px;width:100%}.page{display:flex;flex-direction:column;gap:1.25rem}.page__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text);padding:.45rem .85rem;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--bg-elev-2);border-color:#3a4252}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a1300;font-weight:600}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{background:transparent}.btn.small{padding:.3rem .6rem;font-size:12px}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:.45rem .6rem;border-radius:var(--radius-sm);font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}label{display:flex;flex-direction:column;gap:.3rem;font-size:12px;font-weight:500;color:var(--text-muted);text-transform:none}label input,label select{font-size:13px;color:var(--text)}.checkbox-row{flex-direction:row;align-items:center;gap:.5rem;color:var(--text);text-transform:none;font-size:13px;font-weight:500}.checkbox-row input{width:auto}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.card__title{font-size:14px;font-weight:600}.card__body{padding:1rem}.grid{display:grid;gap:1rem}.grid--stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.grid--two{grid-template-columns:2fr 3fr}.grid--form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.25rem;border-left:3px solid var(--border)}.stat__label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat__value{font-size:22px;font-weight:600}.stat.tone-positive{border-left-color:var(--success)}.stat.tone-negative{border-left-color:var(--danger)}.stat.tone-warning{border-left-color:var(--warning)}.stat.tone-positive .stat__value{color:var(--success)}.stat.tone-negative .stat__value{color:var(--danger)}.stat.tone-warning .stat__value{color:var(--warning)}.tone-positive{color:var(--success)}.tone-negative{color:var(--danger)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge--success{background:var(--success-bg);color:var(--success)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--info{background:var(--info-bg);color:var(--info)}.badge--muted{background:var(--muted-bg);color:var(--text-muted)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}.table th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-elev-2)}.table tbody tr:hover{background:var(--bg-elev-2)}.table__empty{text-align:center;color:var(--text-muted);padding:1.5rem!important}.signal-summary{display:flex;flex-direction:column;gap:.5rem}.signal-summary__top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.signal-summary__symbol{font-size:20px;font-weight:700}.signal-summary__badges{display:flex;gap:.4rem}.signal-summary__amount{font-size:28px;font-weight:700;color:var(--accent)}.dca-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.dca-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.dca-card__head{display:flex;justify-content:space-between;align-items:center}.filters{display:flex;flex-wrap:wrap;gap:.35rem}.chip{padding:.25rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.chip:hover{background:var(--bg-elev-2);color:var(--text)}.chip.is-active{background:var(--accent);color:#1a1300;border-color:var(--accent)}.error{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:13px}.success{background:var(--success-bg);border:1px solid var(--success);color:var(--success);padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:13px}.logs-pre{background:var(--bg);border:1px solid var(--border);padding:.5rem .75rem;border-radius:var(--radius-sm);font-family:var(--mono);font-size:11px;white-space:pre-wrap;word-break:break-word;margin:.4rem 0 0;max-width:540px}@media (max-width: 900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border)}.nav{flex-direction:row;flex-wrap:wrap;flex:0 0 auto}.content{padding:1rem}.grid--two{grid-template-columns:1fr}}
