:root{--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-dim: #64748b;--green: #16a34a;--red: #dc2626;--yellow: #ca8a04;--blue: #2563eb;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", monospace;--surface-hover: #f1f5f9;--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:16px}.header{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:2px solid var(--border);margin-bottom:16px}.header h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.subtitle{color:var(--text-dim);font-size:.875rem}.session-tabs{display:flex;gap:4px}.tab{padding:6px 16px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-dim);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s}.tab:hover{border-color:var(--blue);color:var(--blue)}.tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.briefing-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.briefing-panel h2{font-size:1.125rem;margin-bottom:16px}.briefing-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px}.briefing-hero-item{padding:12px 16px;border-left:4px solid;background:var(--bg);border-radius:0 8px 8px 0}.briefing-hero-icon{font-size:1.25rem;margin-bottom:4px}.briefing-hero-label{font-size:.6875rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em;margin-bottom:2px}.briefing-hero-text{font-size:.9375rem;font-weight:600}.briefing-strategy{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#eff6ff,#f0fdf4);border:1px solid #bfdbfe;border-radius:8px;margin-bottom:16px}.briefing-strategy-icon{font-size:1.25rem}.briefing-strategy-text{font-size:.9375rem;font-weight:600;color:var(--text)}.briefing-symbols-title{font-size:.75rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em;margin-bottom:8px}.briefing-symbol-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.briefing-symbol-card{padding:10px 12px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.briefing-symbol-name{font-weight:700;font-size:.9375rem;margin-bottom:6px}.briefing-symbol-row{display:flex;align-items:center;gap:4px;margin-bottom:2px}.perf-bar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;overflow-x:auto}.perf-item{text-align:center;min-width:60px}.perf-value{display:block;font-size:1rem;font-weight:700;font-family:var(--font-mono)}.perf-label{display:block;font-size:.6875rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em}.perf-divider{width:1px;height:32px;background:var(--border);flex-shrink:0}.feed-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.feed-panel h2{font-size:1.125rem;margin-bottom:12px}.feed-count{font-size:.75rem;color:var(--text-dim);font-weight:400}.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;max-height:800px;overflow-y:auto}.signal-card{border-left:4px solid;background:var(--bg);border-radius:0 8px 8px 0;padding:12px 14px;transition:box-shadow .15s}.signal-card:hover{box-shadow:0 2px 8px #00000014}.signal-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.signal-card-agent{font-size:.75rem;font-weight:600}.signal-card-date{font-size:.6875rem;color:var(--text-dim);margin-left:8px}.signal-card-direction{padding:3px 10px;border-radius:4px;font-size:.8125rem;font-weight:700}.signal-card-body{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.signal-card-symbol-name{font-size:.6875rem;color:var(--text-dim);display:block}.signal-card-symbol-ticker{font-size:1.25rem;font-weight:800}.signal-card-conf{font-size:.75rem}.signal-card-prices{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:8px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.signal-card-price-label{display:block;font-size:.625rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em}.signal-card-price-value{display:block;font-size:.875rem;font-weight:600;font-family:var(--font-mono)}.signal-card-pnl{font-size:.9375rem;font-weight:700;font-family:var(--font-mono);padding:6px 0}.signal-card-chips{display:flex;flex-wrap:wrap;gap:4px}.signal-chip{font-size:.6875rem;padding:2px 6px;border:1px solid;border-radius:4px;background:transparent}.radar-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.radar-panel h2{font-size:1.125rem;margin-bottom:4px;display:flex;align-items:center;gap:8px}.radar-subtitle{font-size:.8125rem;color:var(--text-dim);margin-bottom:16px}.radar-badge{font-size:.625rem;padding:2px 6px;background:#eff6ff;color:#2563eb;border-radius:4px;font-weight:600}.radar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.radar-card{padding:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;border-top:3px solid var(--border)}.radar-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.radar-card-sym{font-size:1.25rem;font-weight:800}.radar-card-name{font-size:.75rem;color:var(--text-dim);margin-left:6px}.radar-card-empty{font-size:.8125rem;color:var(--text-dim);padding:16px 0;text-align:center}.radar-card-stance{font-size:.75rem;font-weight:600}.radar-section{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.radar-section:last-of-type{border-bottom:none;margin-bottom:0}.radar-section-title{font-size:.6875rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em;margin-bottom:3px}.radar-section-value{font-size:.875rem;margin-bottom:2px}.radar-section-desc{font-size:.75rem;color:var(--text-dim);line-height:1.4}.radar-section-meta{font-size:.6875rem;color:var(--text-dim);margin-top:2px}.radar-section-signal{background:#f8fafc;padding:8px;border-radius:6px}.radar-signal-row{display:flex;justify-content:space-between;font-size:.75rem;font-family:var(--font-mono);margin-bottom:2px}.radar-section-strategy{background:linear-gradient(135deg,#eff6ff,#f0fdf4);padding:8px;border-radius:6px;border:1px solid #bfdbfe}.radar-strategy-item{font-size:.75rem;color:var(--text);padding:2px 0;line-height:1.4}.radar-card-footer{font-size:.625rem;color:var(--text-dim);margin-top:8px;text-align:right}.loading-state,.error-state,.empty-state{padding:24px;text-align:center;color:var(--text-dim);font-size:.875rem}.error-state{color:var(--red)}.retry-btn{margin-top:8px;padding:4px 12px;border:1px solid var(--red);border-radius:4px;background:transparent;color:var(--red);cursor:pointer;font-size:.8125rem}@media(max-width:768px){.app{padding:8px}.header{flex-direction:column;gap:8px;align-items:flex-start}.briefing-hero,.feed-grid{grid-template-columns:1fr}.radar-grid{grid-template-columns:1fr 1fr}.perf-bar{flex-wrap:wrap}}@media(max-width:480px){.radar-grid,.briefing-symbol-grid{grid-template-columns:1fr}}.matrix-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:18px 0}.matrix-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.matrix-header h2{font-size:1rem;line-height:1.2;margin-bottom:4px}.matrix-header p,.matrix-note,.matrix-generated{color:var(--text-dim);font-size:.72rem}.matrix-generated{font-family:var(--font-mono);text-align:right;white-space:nowrap}.matrix-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.matrix-summary-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:9px}.matrix-summary-card span{display:block;color:var(--text-dim);font-size:.68rem;margin-bottom:2px}.matrix-summary-card strong{font-size:.95rem;font-family:var(--font-mono)}.matrix-tabs{display:flex;gap:6px;margin-bottom:12px}.matrix-tabs button{flex:1;padding:7px 8px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-dim);cursor:pointer;font-size:.72rem;font-weight:700}.matrix-tabs button.active{background:var(--text);color:var(--bg);border-color:var(--text)}.matrix-table{display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm)}.matrix-row{display:grid;grid-template-columns:minmax(190px,1fr) 38px 70px 46px 74px 70px;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.05);font-family:var(--font-mono);font-size:.68rem}.matrix-row:last-child{border-bottom:0}.matrix-head{background:#ffffff0a;color:var(--text-dim);font-family:var(--font-sans);font-weight:700;letter-spacing:.02em}.matrix-pattern{color:var(--text);font-family:var(--font-sans);font-weight:600}.matrix-green{color:var(--green)}.matrix-red{color:var(--red)}.matrix-empty{padding:18px;text-align:center;color:var(--text-dim);background:#ffffff08;border-radius:var(--radius-sm)}.matrix-coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.matrix-coverage-card{border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:10px;background:#ffffff08}.matrix-coverage-label{font-size:.74rem;font-weight:700;margin-bottom:5px}.matrix-coverage-main{color:var(--text);font-family:var(--font-mono);font-size:.9rem;font-weight:800}.matrix-coverage-sub{color:var(--text-dim);font-size:.66rem}.matrix-note{margin-top:10px;line-height:1.35}@media(max-width:560px){.matrix-summary-grid{grid-template-columns:repeat(2,1fr)}.matrix-header{flex-direction:column}.matrix-generated{text-align:left;white-space:normal}.matrix-row{grid-template-columns:1fr 34px 58px 42px}.matrix-row span:nth-child(5),.matrix-row span:nth-child(6){display:none}.matrix-coverage-grid{grid-template-columns:1fr}}
