:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-card: #1c2128;--border: #30363d;--text-primary: #e6edf3;--text-secondary: #8b949e;--accent: #58a6ff;--green: #3fb950;--red: #f85149;--yellow: #d29922;--orange: #db6d28}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.layout{min-height:100vh;display:flex;flex-direction:column}header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:1rem 2rem}.header-content{max-width:1400px;margin:0 auto;display:flex;align-items:baseline;gap:1rem}header h1{font-size:1.5rem;font-weight:600;color:var(--accent)}.subtitle{color:var(--text-secondary);font-size:.875rem}main{flex:1;max-width:1400px;margin:0 auto;padding:1.5rem 2rem;width:100%}footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:.75rem 2rem;text-align:center;color:var(--text-secondary);font-size:.75rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.card h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.card.loading,.card.error{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-secondary)}.card.error{color:var(--red)}.empty{color:var(--text-secondary);text-align:center;padding:2rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-item .label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.summary-item .value{font-size:1.25rem;font-weight:600}.status-healthy{color:var(--green)}.status-unhealthy{color:var(--red)}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th{text-align:left;padding:.5rem .75rem;color:var(--text-secondary);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}td{padding:.5rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover{background:#58a6ff0a}.symbol{font-weight:600;color:var(--accent)}.positive{color:var(--green);font-weight:500}.negative{color:var(--red);font-weight:500}.badge{display:inline-block;padding:.125rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-volume_spike{background:#db6d2826;color:var(--orange)}.badge-price_change{background:#3fb95026;color:var(--green)}.badge-breakout{background:#58a6ff26;color:var(--accent)}.confidence{font-weight:600;font-size:.85rem}.confidence-high{color:var(--green)}.confidence-mid{color:var(--yellow)}.confidence-low{color:var(--text-secondary)}.reason{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:.8rem}.time{color:var(--text-secondary);font-size:.8rem;white-space:nowrap}.delivered-yes{color:var(--green);font-weight:500}.delivered-no{color:var(--red);font-weight:500}.countdown-bar{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.countdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.countdown-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.countdown-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.countdown-soon{color:var(--green);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.progress-track{width:100%;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width 1s linear}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-header-row h2{margin-bottom:0}.test-alert-btn{padding:.4rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.test-alert-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.test-alert-btn:disabled{opacity:.5;cursor:not-allowed}.test-alert-btn.success{border-color:var(--green);color:var(--green)}.test-alert-btn.fail{border-color:var(--red);color:var(--red)}.test-alert-msg{font-size:.78rem;padding:.5rem .75rem;border-radius:6px;margin-bottom:1rem}.msg-success{background:#3fb9501a;color:var(--green);border:1px solid rgba(63,185,80,.25)}.msg-fail{background:#f851491a;color:var(--red);border:1px solid rgba(248,81,73,.25)}.header-actions{margin-right:auto;margin-left:auto}.reset-db-btn{padding:.4rem 1rem;border:1px solid var(--red);border-radius:6px;background:transparent;color:var(--red);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.reset-db-btn:hover:not(:disabled){background:var(--red);color:#fff}.reset-db-btn:disabled{opacity:.5;cursor:not-allowed}.confirm-bar{display:flex;align-items:center;gap:.75rem;padding:.6rem 2rem;background:#f8514914;border-top:1px solid rgba(248,81,73,.2);font-size:.85rem;color:var(--text-primary)}.confirm-yes{padding:.3rem 1rem;border:none;border-radius:6px;background:var(--red);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer}.confirm-yes:hover{opacity:.85}.confirm-no{padding:.3rem 1rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.8rem;cursor:pointer}.confirm-no:hover{color:var(--text-primary);border-color:var(--text-secondary)}.reset-status{padding:.5rem 2rem;font-size:.8rem}.scanner-live-wrap{margin-bottom:1.5rem}.scanner-live .scanner-desc{font-size:.8rem;color:var(--text-secondary);margin-bottom:1rem}.scanner-live .scanner-summary{display:flex;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap}.scanner-live .scanner-section{margin-top:1.5rem}.scanner-live .scanner-section h3{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem}
