:root{--amber: #b26b00;--blue: #2563eb;--blue-soft: #e8f0ff;--border: #d9dee7;--canvas: #f7f8fb;--green: #0f7a4f;--green-soft: #e1f5ea;--ink: #15171c;--muted: #697386;--red: #b42318;--red-soft: #ffe7e3;--shadow: 0 10px 30px rgba(23, 31, 44, .06);--soft: #eef1f5;--surface: #ffffff;--text: #3f4756;color:var(--text);background:linear-gradient(180deg,#e8f0ff9e,#f7f8fb00 360px),var(--canvas);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}.app-shell{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.topbar,.panel-header,.signal-title,.signal-conditions,.pool-stats,.factor-head,.compact-row,.version-item{display:flex;align-items:center}.topbar{justify-content:space-between;gap:24px;margin-bottom:22px}.eyebrow,.section-kicker,.panel-note{margin:0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topbar h1,.market-summary h2,.panel h2,.pool-card h3{margin:0;color:var(--ink);letter-spacing:0}.topbar h1{margin-top:6px;font-size:32px;line-height:1.08}.run-status{min-width:210px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:12px 14px;text-align:right;box-shadow:var(--shadow)}.run-status span,.run-status strong,.run-status small{display:block}.run-status span{color:var(--muted);font-size:13px}.run-status strong{margin-top:2px;color:var(--ink);font-size:15px}.run-status small{margin-top:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.data-source.live{color:var(--green)}.data-source.unavailable{color:var(--amber)}.data-source.prototype{color:var(--muted)}.market-band,.panel,.pool-card{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.market-band{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(520px,1.4fr);gap:18px;padding:22px;margin-bottom:18px}.market-summary h2{margin:6px 0 10px;font-size:26px}.market-summary p:last-child,.pool-card p,.factor-group p,.version-item p,.signal-main p{margin:0;color:var(--text)}.market-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{min-height:92px;border:1px solid var(--border);border-radius:8px;padding:14px;background:var(--canvas)}.metric span,.metric small,.outcome-card span,.outcome-card small{display:block}.metric span,.outcome-card span{color:var(--muted);font-size:12px;font-weight:700}.metric strong{display:block;margin:8px 0 4px;color:var(--ink);font-size:20px}.metric small,.outcome-card small{font-size:13px}.positive{color:var(--green)}.negative{color:var(--red)}.neutral{color:var(--blue)}.warning{color:var(--amber)}.pool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.pool-card{padding:18px}.pool-card h3{margin-top:6px;font-size:24px}.pool-card p{margin-top:12px;min-height:48px}.pool-stats{flex-wrap:wrap;gap:8px;margin-top:16px}.pool-stats span,.signal-title span,.signal-conditions span,.pill{border-radius:999px;background:var(--soft);color:var(--text);font-size:12px;font-weight:700;padding:5px 9px}.content-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.75fr);gap:18px;margin-bottom:18px}.split-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.panel{padding:20px}.panel-header{justify-content:space-between;gap:16px;margin-bottom:18px}.panel h2{margin-top:5px;font-size:22px}.signal-list{display:grid;gap:12px}.signal-row{display:grid;grid-template-columns:44px minmax(0,1fr) 82px;align-items:center;gap:14px;border:1px solid var(--border);border-radius:8px;background:var(--canvas);padding:14px}.signal-rank{display:grid;width:36px;height:36px;place-items:center;border-radius:8px;background:var(--ink);color:var(--surface);font-weight:800}.signal-main{min-width:0}.signal-title{flex-wrap:wrap;gap:8px;margin-bottom:8px}.signal-title strong{color:var(--ink);font-size:18px}.signal-main p{line-height:1.55}.signal-conditions{flex-wrap:wrap;gap:8px;margin-top:12px}.signal-score{min-height:64px;border-radius:8px;padding:10px;text-align:center}.signal-score strong,.signal-score span{display:block}.signal-score strong{font-size:24px;line-height:1}.signal-score span{margin-top:6px;font-size:12px;font-weight:800}.strong,.pill.strong{background:var(--green-soft);color:var(--green)}.watch,.pill.watch{background:var(--blue-soft);color:var(--blue)}.risk,.pill.risk{background:var(--red-soft);color:var(--red)}.neutral,.pill.neutral{background:var(--soft);color:var(--text)}.empty-state{border:1px dashed var(--border);border-radius:8px;background:var(--canvas);color:var(--muted);font-weight:700;padding:18px}.compact-empty{min-height:68px;display:grid;place-items:center}.factor-stack{display:grid;gap:14px}.factor-group{border-bottom:1px solid var(--border);padding-bottom:13px}.factor-group:last-child{border-bottom:0;padding-bottom:0}.factor-head{justify-content:space-between;gap:10px;color:var(--ink)}.factor-head span{color:var(--muted);font-size:13px;font-weight:800}.weight-bar{height:7px;margin:10px 0;overflow:hidden;border-radius:999px;background:var(--soft)}.weight-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--green))}.compact-table{display:grid;gap:10px}.compact-row{justify-content:space-between;gap:14px;border:1px solid var(--border);border-radius:8px;background:var(--canvas);padding:13px 14px}.compact-row div:first-child{min-width:0}.compact-row strong,.compact-row span{display:block}.compact-row strong{color:var(--ink)}.compact-row span{margin-top:3px;color:var(--text)}.pill{min-width:42px;text-align:center}.outcome-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.outcome-card{border:1px solid var(--border);border-radius:8px;background:var(--canvas);padding:15px}.outcome-card strong{display:block;margin:10px 0 3px;color:var(--ink);font-size:22px}.evaluation-panel{margin-top:18px}.evaluation-table{display:grid;gap:8px}.evaluation-row{display:grid;grid-template-columns:minmax(112px,1.2fr) 64px 60px 70px 84px 92px 84px minmax(112px,1fr);gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:var(--canvas);padding:12px 14px}.evaluation-head{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:800;padding-top:0;padding-bottom:0}.evaluation-row span{min-width:0;color:var(--text);font-size:14px}.evaluation-row span:before{display:none}.evaluation-row strong{color:var(--ink)}.evaluation-row .positive{color:var(--green);font-weight:800}.evaluation-row .negative{color:var(--red);font-weight:800}.version-panel{margin-top:18px}.version-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.version-item{align-items:flex-start;flex-direction:column;min-height:148px;border:1px solid var(--border);border-radius:8px;background:var(--canvas);padding:15px}.version-item span{color:var(--muted);font-size:13px;font-weight:800}.version-item strong{margin:8px 0;color:var(--ink);font-size:18px}@media(max-width:1050px){.market-band,.content-grid,.split-section{grid-template-columns:1fr}.market-metrics,.outcome-grid,.version-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.pool-grid{grid-template-columns:1fr}.evaluation-head{display:none}.evaluation-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.evaluation-row span:before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted);font-size:11px;font-weight:800}}@media(max-width:680px){.app-shell{width:min(100% - 20px,1280px);padding-top:16px}.topbar,.panel-header{align-items:stretch;flex-direction:column}.topbar h1{font-size:26px}.run-status{min-width:0;text-align:left}.market-band,.panel,.pool-card{padding:16px}.market-metrics,.outcome-grid,.version-timeline{grid-template-columns:1fr}.signal-row{grid-template-columns:36px minmax(0,1fr)}.signal-score{grid-column:1 / -1;min-height:auto;display:flex;align-items:center;justify-content:space-between}.signal-score span{margin-top:0}}
