:root { --bg:#080b10; --surface:#0d151c; --line:#23313b; --line-soft:#19252e; --text:#e7eef1; --muted:#99aab5; --faint:#758793; --cyan:#47e0bb; --green:#63dca4; --amber:#edbb66; --red:#ff7b87; --sidebar:216px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans CJK SC","Microsoft YaHei",sans-serif; color:var(--text); background:var(--bg); font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; min-height:100vh; background:radial-gradient(ellipse at 90% 0,#163b3c44,transparent 700px),var(--bg); }
button,input,select { font:inherit; }
button { color:inherit; cursor:pointer; }
a { color:var(--cyan); }
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,tr:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
button:disabled { cursor:wait; opacity:.6; }
[hidden] { display:none!important; }
.green,.positive { color:var(--green)!important; } .amber { color:var(--amber)!important; } .red,.negative { color:var(--red)!important; } .cyan { color:var(--cyan)!important; } .muted { color:var(--muted)!important; }
.app-shell { display:grid; grid-template-columns:var(--sidebar) minmax(0,1fr); min-height:100vh; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:30; width:var(--sidebar); display:flex; flex-direction:column; border-right:1px solid var(--line); background:#090e14; }
.brand { display:flex; align-items:center; gap:11px; min-height:89px; padding:20px 16px; border-bottom:1px solid var(--line); }
.brand-mark { width:37px; height:37px; display:grid; place-items:center; flex-shrink:0; border:1px solid var(--cyan); color:var(--cyan); background:#102821; font:700 27px/1 Georgia,serif; }
.brand strong { display:block; font-size:15px; letter-spacing:.08em; }
.brand small { display:block; color:var(--faint); margin-top:6px; font-size:10px; }
.side-nav { display:grid; gap:5px; padding:18px 10px; overflow:auto; }
.nav-item { display:flex; align-items:center; gap:13px; padding:12px; min-height:45px; width:100%; border:1px solid transparent; background:transparent; color:var(--muted); text-align:left; border-radius:4px; font-size:14px; }
.nav-item span { color:var(--faint); font:10px ui-monospace,monospace; }
.nav-item:hover { background:#ffffff06; color:var(--text); }
.nav-item.active { border-color:#2c5146; background:#142a23; color:var(--cyan); }
.sidebar-foot { margin-top:auto; padding:19px 15px; display:flex; align-items:center; gap:10px; border-top:1px solid var(--line); }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--amber); box-shadow:0 0 12px #e3b65340; flex-shrink:0; }
body[data-online=true] .status-dot { background:var(--green); }
.sidebar-foot b { display:block; font-size:12px; }.sidebar-foot small { display:block; margin-top:6px; color:var(--faint); font-size:10px; }
.workspace { grid-column:2; min-width:0; }
.topbar { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:89px; padding:17px 28px; border-bottom:1px solid var(--line); background:#080e14f5; backdrop-filter:blur(16px); }
.topbar p,.section-intro p,.panel-head p,.token-hero p,.eyebrow { color:var(--cyan); font-size:11px; letter-spacing:.1em; margin:0 0 8px; }
.topbar h1 { margin:0; font-size:22px; letter-spacing:.03em; }
.top-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.top-actions>span:first-child { color:var(--faint); font-size:11px; }
.badge,.pill { display:inline-flex; align-items:center; width:max-content; max-width:100%; border:1px solid currentColor; padding:6px 8px; border-radius:3px; font-size:11px; line-height:1.3; white-space:nowrap; }
.badge.cyan { background:#112820; }.badge.amber,.pill.amber { background:#2a2417; }.badge.red,.pill.red { background:#321b20; }.pill.green { background:#132a20; }
.refresh-button,.back-button { border:1px solid var(--line); background:#111b23; color:var(--muted); padding:8px 12px; font-size:12px; min-height:34px; border-radius:4px; }
.refresh-button:hover,.back-button:hover { border-color:var(--cyan); color:var(--cyan); }
main { width:min(1680px,100%); margin:0 auto; padding:25px 28px 70px; }
.view { display:none; }.view.active { display:block; }
.overview-intro { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin:3px 0 25px; }
.overview-intro h2 { font-size:29px; font-weight:650; letter-spacing:.04em; margin:0 0 12px; }
.overview-intro p:last-child { margin:0; color:var(--muted); line-height:1.7; font-size:13px; }
.version-tag { font:11px ui-monospace,monospace; color:var(--faint); border:1px solid var(--line); padding:8px; white-space:nowrap; }
.status-strip { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border:1px solid var(--line); background:#0a1118; margin-bottom:12px; }
.status-cell { min-width:0; padding:13px 14px; border-right:1px solid var(--line); }.status-cell:last-child { border-right:0; }
.status-cell span { display:block; color:var(--faint); font-size:10px; }.status-cell b { display:block; margin-top:8px; font-size:12px; font-weight:550; overflow-wrap:anywhere; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }.kpi-grid.compact { grid-template-columns:repeat(4,minmax(0,1fr)); }
.kpi { min-width:0; padding:17px; min-height:112px; border:1px solid var(--line); border-radius:4px; background:linear-gradient(130deg,#111c25,#0c131a); }
.kpi-label { display:block; color:var(--muted); font-size:12px; }.kpi strong { display:block; font-variant-numeric:tabular-nums; margin:14px 0 0; font-size:clamp(18px,1.8vw,27px); font-weight:650; line-height:1.2; overflow-wrap:anywhere; }.kpi small { display:block; margin-top:10px; color:var(--faint); font-size:10px; line-height:1.5; }
.panel { min-width:0; margin:14px 0; padding:20px; border:1px solid var(--line); border-radius:4px; background:linear-gradient(135deg,#101a22,#0b1219); }.panel.flush { padding:0; }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-bottom:15px; border-bottom:1px solid var(--line-soft); }.panel-head h2 { font-size:17px; margin:0; font-weight:600; }.panel-head p { font-size:10px; margin-bottom:7px; }
.text-button { border:0; background:transparent; padding:5px 0; color:var(--cyan); font-size:12px; text-align:left; }.text-button:hover { text-decoration:underline; }
.content-grid { display:grid; gap:12px; margin:14px 0; }.content-grid.wide-left { grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); }.content-grid.equal { grid-template-columns:repeat(2,minmax(0,1fr)); }.content-grid>.panel { margin:0; }
.pipeline { list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:17px 0 0; padding:0; }.pipeline li { display:flex; align-items:flex-start; gap:9px; min-width:0; }.pipeline li>b { display:grid; place-items:center; color:var(--cyan); width:23px; height:23px; flex-shrink:0; background:#123128; font:10px ui-monospace,monospace; }.pipeline li>span { font-size:12px; line-height:1.7; }.pipeline small { display:block; color:var(--faint); font-size:10px; }
.signal-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:15px; }.signal-card { min-width:0; border:1px solid var(--line); border-radius:4px; background:#0b141c; text-align:left; padding:15px; }.signal-card:hover { border-color:#477768; background:#101e25; }
.signal-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }.signal-top>div { min-width:0; }.signal-top strong { display:block; font-size:15px; overflow-wrap:anywhere; }.signal-top small { display:block; margin-top:6px; font-size:10px; color:var(--faint); overflow-wrap:anywhere; }.signal-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:15px; }.signal-metrics small { display:block; font-size:10px; color:var(--faint); }.signal-metrics b { display:block; font-size:11px; margin-top:5px; line-height:1.45; overflow-wrap:anywhere; }.card-risk { font-size:11px; line-height:1.5; border-top:1px solid var(--line-soft); padding-top:10px; margin:12px 0 0; }
.tag-row { display:flex; flex-wrap:wrap; gap:5px; margin-top:11px; }.plain-tag { padding:4px 6px; border:1px solid #293941; border-radius:2px; color:var(--muted); font-size:10px; }
.stack-row { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid var(--line-soft); font-size:12px; line-height:1.5; }.stack-row>span { color:var(--muted); flex:1; }.stack-row b { font-weight:500; text-align:right; max-width:65%; overflow-wrap:anywhere; }.stack-row:last-child { border-bottom:0; }
.method-note,.connection-notice { padding:13px 15px; margin:13px 0; border-left:2px solid var(--amber); background:#33291255; color:#b8b4a6; line-height:1.8; font-size:12px; }.connection-notice { border-color:var(--red); background:#321b24; color:#ffb4bd; }
.section-intro { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:4px 0 18px; }.section-intro h2 { font-size:25px; margin:0; }.section-intro p { font-size:11px; }
.filter-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:20px 0 15px; }.filter-tabs button,.mobile-sections button { border:1px solid var(--line); border-radius:3px; background:#0e171e; color:var(--muted); font-size:12px; padding:9px 12px; white-space:nowrap; }.filter-tabs button.active,.mobile-sections button.active { border-color:#3b7660; background:#153429; color:var(--cyan); }
.toolbar { display:flex; align-items:flex-end; gap:10px; margin-bottom:15px; }.toolbar label { display:grid; gap:7px; }.toolbar label:first-child { flex:1; }.toolbar label>span { color:var(--muted); font-size:11px; } input,select { min-height:40px; width:100%; border:1px solid #2d404d; background:#0d171f; color:var(--text); border-radius:4px; padding:9px 11px; font-size:13px; } input::placeholder { color:var(--faint); }select { cursor:pointer; min-width:160px; }
.table-wrap { max-width:100%; overflow:auto; overscroll-behavior-inline:contain; }.table-wrap table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }th { text-align:left; white-space:nowrap; color:var(--faint); font-size:10px; font-weight:500; background:#101a23; padding:15px 12px; border-bottom:1px solid var(--line); }td { color:var(--text); font-size:12px; padding:15px 12px; border-bottom:1px solid var(--line-soft); white-space:nowrap; }td strong { display:block; font-size:12px; max-width:200px; white-space:normal; overflow-wrap:anywhere; }td small { display:block; font-size:10px; color:var(--faint); margin-top:6px; }tr[tabindex] { cursor:pointer; }tr[tabindex]:hover { background:#172830; }.table-empty { text-align:center; white-space:normal; padding:35px; color:var(--muted); line-height:1.8; }.has-outliers td:nth-child(3) { color:var(--amber); }
.empty-state { display:flex; justify-content:center; align-items:center; min-height:150px; color:var(--muted); font-size:13px; line-height:1.8; padding:25px; text-align:center; grid-column:1/-1; }.mobile-only,.mobile-brand,.mobile-sections,.bottom-nav { display:none; }
.token-hero { display:flex; align-items:center; justify-content:space-between; gap:22px; }.token-hero>div:first-child { min-width:0; }.token-hero h2 { font-size:25px; margin:0 0 12px; overflow-wrap:anywhere; }.copy-address { display:block; padding:0; background:transparent; color:var(--muted); border:0; text-align:left; font:12px/1.8 ui-monospace,monospace; overflow-wrap:anywhere; word-break:break-all; }.copy-address:hover { color:var(--cyan); }.consensus-box { max-width:43%; min-width:200px; padding-left:20px; border-left:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; gap:10px; }.consensus-box>span:first-child { color:var(--muted); font-size:11px; }.consensus-box small { flex-basis:100%; color:var(--muted); font-size:12px; line-height:1.7; }.horizon-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; padding-top:15px; }.horizon-grid .kpi { min-height:100px; }
.evidence-list { margin-top:15px; }.evidence-list>p { color:var(--muted); font-size:13px; line-height:1.8; }.evidence-section { padding:4px 0; }.evidence-section h3 { font-size:13px; font-weight:550; margin:14px 0 8px; }.evidence-section p,.evidence-section li { font-size:12px; line-height:1.8; color:var(--muted); overflow-wrap:anywhere; }.evidence-section ul { padding-left:19px; margin:0; }.evidence-section li+li { margin-top:7px; }.evidence-time { display:block; color:var(--faint); margin-top:3px; }.evidence-link { white-space:nowrap; }
.coverage-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:15px; margin-top:19px; }.coverage-grid b { font-size:13px; color:var(--cyan); font-weight:500; }.coverage-grid p { font-size:12px; color:var(--muted); line-height:1.8; margin-bottom:0; }
.timeline-item { display:grid; grid-template-columns:180px minmax(0,1fr) auto; gap:15px; align-items:start; padding:16px 0; border-bottom:1px solid var(--line-soft); }.timeline-item p { margin:7px 0 0; font-size:12px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }.timeline-item time { color:var(--faint); font-size:10px; }.timeline-item .text-button { padding:0; font-size:13px; }.timeline-item .pill { white-space:normal; }
.wallet-card { border:1px solid var(--line); padding:17px; }.wallet-card h3 { font-size:16px; margin:0 0 12px; }.address-text { overflow-wrap:anywhere; color:var(--muted); font:12px/1.8 ui-monospace,monospace; }
.history-panel { border-top:2px solid #8a6731; }.history-details { margin-top:20px; }.history-details summary { font-size:13px; color:var(--amber); cursor:pointer; padding:12px 0; }.history-details .table-wrap { margin-top:10px; }.agent-performance-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }.performance-card { padding:16px; border:1px solid var(--line); }.performance-card h3 { font-size:14px; margin:0 0 12px; }
.study-progress { display:grid; gap:9px; margin:15px 0; padding:15px; background:#132b23; border:1px solid #285542; }.study-progress-head { display:flex; justify-content:space-between; font-size:12px; color:var(--cyan); }.study-progress-bar { width:100%; height:7px; border:0; appearance:none; background:#192a28; }.study-progress-bar::-webkit-progress-bar { background:#192a28; }.study-progress-bar::-webkit-progress-value { background:var(--cyan); }.study-progress-bar::-moz-progress-bar { background:var(--cyan); }.study-progress small { font-size:11px; color:var(--muted); }
.source-item { border-bottom:1px solid var(--line-soft); padding:4px 0 12px; }.source-item .stack-row { border:0; }.source-item p { font-size:12px; color:var(--muted); line-height:1.7; margin:0; overflow-wrap:anywhere; }.source-item small { display:block; color:var(--faint); font-size:10px; margin-top:8px; }
.live-warning { position:sticky; top:0; z-index:100; text-align:center; padding:12px; color:#200609; background:var(--red); font-size:13px; }#toast { position:fixed; bottom:22px; right:22px; z-index:110; padding:13px 16px; border:1px solid var(--cyan); color:var(--cyan); background:#0b211a; font-size:13px; opacity:0; pointer-events:none; transition:opacity .15s; max-width:calc(100vw - 30px); }#toast.visible { opacity:1; }
@media (max-width:1200px) { :root { --sidebar:192px; }.topbar { padding-inline:22px; }main { padding-inline:22px; }.kpi-grid,.kpi-grid.compact { grid-template-columns:repeat(3,minmax(0,1fr)); }.status-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }.status-cell:nth-child(3) { border-right:0; }.status-cell:nth-child(-n+3) { border-bottom:1px solid var(--line); }.pipeline { grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }.coverage-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.content-grid.wide-left { grid-template-columns:1fr; }.signal-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.top-actions>span:first-child { display:none; } }
@media (max-width:960px) { .content-grid.equal { grid-template-columns:1fr; }.top-actions { gap:5px; }.kpi-grid,.kpi-grid.compact { grid-template-columns:repeat(2,minmax(0,1fr)); }.signal-list { grid-template-columns:1fr; }.agent-performance-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.timeline-item { grid-template-columns:150px minmax(0,1fr); }.timeline-item time { grid-column:2; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
/* The first screen follows real trigger records; badges never imply an exchange fill. */
.notification-button { border:1px solid var(--line); padding:8px 10px; color:var(--muted); background:#111b23; border-radius:4px; font-size:12px; white-space:nowrap; }
.notification-button span { display:inline-block; min-width:16px; margin-left:3px; font-variant-numeric:tabular-nums; }
.notification-button.has-unread { border-color:var(--cyan); color:var(--cyan); background:#153329; }
.notification-panel { scroll-margin-top:110px; border-color:#315a4b; }.notification-panel #notification-list { max-height:500px; overflow:auto; }.stream-state { color:var(--faint); font-size:11px; line-height:1.6; }
.trigger-panel { border:1px solid #315548; border-radius:5px; padding:19px 20px 13px; background:linear-gradient(120deg,#10271f,#0a151b 78%); margin:0 0 12px; }
.trigger-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.trigger-heading p { margin:0 0 7px; color:var(--cyan); font-size:11px; letter-spacing:.08em; }.trigger-heading h2 { margin:0; font-size:24px; font-weight:600; }.trigger-heading .text-button { flex-shrink:0; }
.trigger-event { min-width:0; padding:15px 0; border-bottom:1px solid var(--line); }.trigger-event.compact { margin-top:13px; padding:14px; border:1px solid #29483f; border-radius:4px; background:#09191099; }.trigger-event.unread { border-left:3px solid var(--cyan); padding-left:12px; }
.trigger-event-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 12px; }.trigger-event time { font-size:11px; color:var(--faint); }.trigger-event .event-token { display:block; max-width:100%; padding:0; margin-top:11px; color:var(--text); background:none; border:0; font-weight:600; font-size:16px; overflow-wrap:anywhere; text-align:left; }.trigger-event .event-token:hover { color:var(--cyan); }.trigger-reason { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }.trigger-event>small { display:block; margin-top:8px; font-size:11px; line-height:1.6; }.trigger-event.compact .trigger-reason { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.trigger-awaiting { padding:22px 0 15px; color:var(--muted); font-size:13px; line-height:1.8; }.trigger-counts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:14px; }.trigger-count { min-width:0; border:1px solid #294037; padding:11px 13px; background:#0c171b; }.trigger-count>span { display:block; font-size:11px; color:var(--muted); }.trigger-count>strong { display:block; font-size:25px; margin-top:7px; font-variant-numeric:tabular-nums; }.trigger-count>small { display:block; font-size:10px; color:var(--faint); margin-top:5px; line-height:1.5; }.trigger-footnote { font-size:11px; line-height:1.6; color:var(--faint); margin:12px 0 0; }
.paper-home-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; padding:0 1px; margin-bottom:15px; }.paper-home-summary .stack-row { font-size:11px; }.paper-home-summary .stack-row b { color:var(--cyan); }
.paper-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding-top:15px; }.paper-record-card { min-width:0; padding:17px; border:1px solid var(--line); background:#0b141c; }.paper-record-head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:9px; margin-bottom:9px; }.paper-record-head h3 { font-size:16px; margin:0; overflow-wrap:anywhere; }.paper-record-head .pill { white-space:normal; }.paper-tabs { margin-top:21px; }.paper-tab { scroll-margin-top:100px; }.account-placeholder { color:var(--muted); font-size:13px; line-height:1.9; }.paper-tab .table-wrap { margin-top:14px; }
@media (max-width:1100px) { .paper-card-grid { grid-template-columns:1fr; }.top-actions>span:first-child { display:none; } }
.paper-modes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:18px 0; }
.paper-modes button { min-width:0; border:1px solid var(--line); border-radius:4px; padding:14px 16px; color:var(--muted); background:#0d171e; text-align:left; font-size:15px; }
.paper-modes button small { display:block; margin-top:7px; color:var(--faint); font-size:11px; line-height:1.6; }
.paper-modes button.active { border-color:#43866a; color:var(--cyan); background:#143025; }
.paper-modes button[data-paper-mode=counterfactual].active { color:var(--amber); border-color:#927039; background:#2a2316; }
.counterfactual-boundary { padding:17px; border:1px solid #8a6832; border-left:4px solid var(--amber); border-radius:4px; background:#2c2414; }
.counterfactual-boundary b { color:var(--amber); font-size:16px; font-weight:550; }.counterfactual-boundary p { color:#d5c8ac; font-size:13px; line-height:1.9; margin:9px 0 0; }
.counterfactual-records { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:17px; }
.counterfactual-records>.panel { margin:0; }.counterfactual-card { border-top:2px solid #8a6832; }.counterfactual-card .tag-row { margin-bottom:10px; }.counterfactual-reason { color:var(--amber); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.counterfactual-horizons { grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:4px; }.counterfactual-horizons .kpi { padding:13px; }.counterfactual-horizons .kpi strong { font-size:22px; }.counterfactual-horizons .kpi small { margin-top:6px; }.outcome-status { display:block; margin-top:10px; color:var(--muted); font-size:11px; line-height:1.6; }.counterfactual-caption { display:block; margin-top:14px; font-size:10px; line-height:1.8; color:var(--faint); }
@media (max-width:1200px) { .counterfactual-records { grid-template-columns:1fr; }.counterfactual-horizons { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.counterfactual-records { grid-template-columns:1fr; align-items:start; }
.counterfactual-toggle { display:block; list-style:none; cursor:pointer; }
.counterfactual-toggle::-webkit-details-marker { display:none; }
.counterfactual-toggle .paper-record-head { margin-bottom:7px; }
.counterfactual-toggle>time { display:block; color:var(--muted); font-size:11px; line-height:1.7; }
.counterfactual-toggle::after { content:'展开价格观察 ▾'; display:block; color:var(--amber); font-size:12px; margin-top:11px; }
.counterfactual-card[open]>.counterfactual-toggle { padding-bottom:15px; margin-bottom:15px; border-bottom:1px solid var(--line); }
.counterfactual-card[open]>.counterfactual-toggle::after { content:'收起价格观察 ▴'; }
.counterfactual-horizons { grid-template-columns:repeat(4,minmax(0,1fr)); }
