:root{--bg:#07090f;--surface:#0d121c;--surface-2:#111927;--surface-3:#172233;--line:#243044;--line-strong:#324157;--text:#eef4ff;--muted:#94a3b8;--faint:#64748b;--cyan:#7dd3fc;--green:#34d399;--amber:#facc15;--red:#fb7185}*{box-sizing:border-box}html{min-height:100%}body{min-height:100%;color:var(--text);background:linear-gradient(180deg, #141c2ae6 0%, #07090f 48%), var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{background:var(--green);color:#04110b;cursor:pointer;border:0;border-radius:8px;padding:.68rem .9rem;font-weight:800;transition:transform .16s,border-color .16s,background .16s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}button.danger{color:var(--red);background:0 0;border:1px solid #fb718573}button.compact{padding:.55rem .72rem}input,select{border:1px solid var(--line);width:100%;min-width:0;color:var(--text);background:#090f18;border-radius:8px;outline:0;padding:.68rem .78rem}input:focus,select:focus{border-color:#7dd3fcbf;box-shadow:0 0 0 3px #7dd3fc1f}p{color:var(--muted);margin:0;line-height:1.5}.app-shell{grid-template-columns:330px minmax(0,1fr);gap:1rem;min-height:100vh;padding:1rem;display:grid}.watch-panel,.detail-panel,.chart-card,.prediction-row,.add-panel{border:1px solid var(--line);background:#0d121cdb;border-radius:8px;box-shadow:0 22px 70px #00000047}.watch-panel{flex-direction:column;gap:.85rem;height:calc(100vh - 2rem);padding:.9rem;display:flex;position:sticky;top:1rem;overflow:hidden}.brand-row,.detail-header,.chart-toolbar,.section-heading,.row,.watch-top,.watch-meta,.prediction-main,.chart-legend{align-items:center;display:flex}.brand-row,.detail-header,.chart-toolbar,.section-heading,.watch-top,.watch-meta,.prediction-main{justify-content:space-between;gap:1rem}.eyebrow,.section-label{color:var(--cyan);letter-spacing:.13em;text-transform:uppercase;font-size:.72rem;font-weight:900;display:block}h1,h2,h3{letter-spacing:0;margin:0}h1{font-size:1.45rem;line-height:1.1}h2{font-size:clamp(2rem,5vw,4.25rem);line-height:.95}h3{font-size:1.15rem}.icon-button{place-items:center;width:42px;height:42px;padding:0;font-size:1.65rem;line-height:1;display:grid}.settings-button{color:var(--muted);flex:none;font-size:1.15rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.add-panel{background:#111927f5;gap:.75rem;padding:.75rem;display:grid}.row{gap:.55rem}.search-list,.watch-list,.prediction-list,.manual-add{gap:.55rem;display:grid}.manual-add{border-top:1px solid var(--line);padding-top:.65rem}.search-result,.watch-item{text-align:left;width:100%;color:var(--text);border:1px solid var(--line);background:#090f18c7;border-radius:8px}.search-result{justify-content:space-between;align-items:center;gap:.75rem;padding:.62rem .68rem;display:flex}.search-result span:first-child{min-width:0}.search-result strong,.search-result small{display:block}.search-result small,.watch-name,.watch-foot,.muted{color:var(--muted);font-size:.82rem}.search-empty{border:1px solid var(--line);color:var(--muted);background:#090f18b8;border-radius:8px;padding:.65rem;font-size:.78rem}.watch-list{flex:auto;grid-auto-rows:max-content;align-content:start;align-items:start;min-height:0;padding-right:.15rem;overflow-y:auto}.watch-item{gap:.45rem;padding:.82rem;display:grid}.watch-item.active{background:linear-gradient(#172233f5,#090f18f5);border-color:#7dd3fcc7}.watch-item strong{font-size:1.05rem}.watch-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.asset-type,.status{border:1px solid var(--line-strong);width:max-content;max-width:100%;color:var(--muted);border-radius:999px;align-items:center;padding:.18rem .48rem;font-size:.72rem;font-weight:800;display:inline-flex}.watch-foot{border-top:1px solid #243044ad;padding-top:.3rem}.detail-panel{background:#090d15b8;min-width:0;padding:1rem}.detail-header{align-items:flex-start;padding:.3rem 0 .9rem}.detail-header p{margin-top:.45rem}.detail-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}@keyframes pulse-status{0%,to{opacity:.7;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}.ledger-status-grid{grid-template-columns:repeat(4,minmax(106px,auto));gap:.35rem;display:grid}.ledger-status-grid>span{border:1px solid var(--line);background:#090f18b8;border-radius:8px;min-height:42px;padding:.38rem .55rem}.ledger-status-grid small,.ledger-status-grid strong{white-space:nowrap;display:block}.ledger-status-grid small{color:var(--muted);font-size:.66rem;font-weight:800}.ledger-status-grid strong{margin-top:.1rem;font-size:.74rem}.source-pill{width:fit-content;color:var(--cyan);text-transform:uppercase;background:#7dd3fc14;border:1px solid #7dd3fc59;border-radius:999px;margin-top:.65rem;padding:.28rem .52rem;font-size:.72rem;font-weight:900;display:inline-flex}.source-pill.demo{color:var(--amber);background:#facc1514;border-color:#facc1561}.automation-panel{border-block:1px solid var(--line);margin-bottom:.85rem;padding:.82rem 0}.watch-panel .automation-panel{border:1px solid var(--line);background:#111927c7;border-radius:8px;flex:none;margin-bottom:0;padding:.72rem}.automation-summary,.automation-actions,.automation-now,.automation-error,.automation-run-row{align-items:center;display:flex}.automation-summary,.automation-actions,.automation-error,.automation-run-row{justify-content:space-between;gap:.8rem}.automation-summary>div{min-width:0}.automation-summary strong,.automation-summary small{display:block}.automation-summary strong{margin-top:.08rem;font-size:.95rem}.automation-summary small{color:var(--muted);margin-top:.08rem;font-size:.72rem;font-weight:750}.automation-actions{margin-top:.62rem}.automation-actions button{flex:none}.automation-now{min-width:0;color:var(--muted);gap:.42rem;font-size:.76rem;font-weight:850}.automation-now span{background:var(--faint);border-radius:50%;flex:none;width:8px;height:8px}.automation-now.active{color:var(--cyan)}.automation-now.active span{background:var(--cyan);animation:1.1s ease-in-out infinite pulse-status}.worker-badge,.automation-run-status{width:max-content;max-width:100%;color:var(--muted);white-space:nowrap;font-size:.69rem;font-weight:850}.worker-badge{border:1px solid var(--line-strong);border-radius:999px;padding:.16rem .42rem}.worker-badge.online{color:var(--green);border-color:#34d3996b}.worker-badge.offline,.automation-run-status.failed,.automation-run-status.partial{color:var(--red)}.automation-metrics{border-top:1px solid #243044ad;grid-template-columns:1fr;margin-top:.56rem;display:grid}.automation-metrics>span{border-bottom:1px solid #2430448c;min-width:0;padding:.52rem 0}.automation-metrics>span:last-child{border-bottom:0}.automation-metrics small,.automation-metrics strong{display:block}.automation-metrics small{color:var(--faint);text-transform:uppercase;font-size:.66rem;font-weight:900}.automation-metrics strong{overflow-wrap:anywhere;margin-top:.18rem;font-size:.79rem}.automation-error{border-left:3px solid var(--red);color:#fecdd3;background:#fb71850f;margin-top:.68rem;padding:.42rem 0 .42rem .65rem;font-size:.76rem}.automation-error>span{overflow-wrap:anywhere;min-width:0}.automation-details{color:var(--muted);margin-top:.68rem;font-size:.76rem}.automation-details>summary{width:max-content;color:var(--cyan);cursor:pointer;font-weight:800}.automation-history{border-top:1px solid var(--line);margin-top:.48rem}.automation-run-row{border-bottom:1px solid #243044ad;padding:.48rem 0}.automation-run-row>span:first-child{min-width:0}.automation-run-row strong,.automation-run-row small{display:block}.automation-run-row strong{color:var(--text);font-size:.76rem}.automation-run-row small{overflow-wrap:anywhere;color:var(--muted);margin-top:.12rem;font-size:.69rem}.automation-run-status.succeeded{color:var(--green)}.automation-run-status.running,.automation-run-status.queued{color:var(--cyan)}.chart-card{background:#0d121ceb;overflow:hidden}.data-notice{color:#fde68a;background:#facc1514;border:1px solid #facc1547;border-radius:8px;margin:.85rem .85rem 0;padding:.72rem .85rem;font-size:.85rem;font-weight:700}.chart-toolbar{border-bottom:1px solid var(--line);flex-wrap:nowrap;padding:.85rem;overflow-x:auto}.chart-title-block{white-space:nowrap;flex:1 0 auto;align-items:baseline;gap:.55rem;min-width:min(220px,48vw);display:flex}.chart-title-block h3{font-size:1rem;line-height:1.25;display:block}.chart-title-block span{color:var(--muted);font-size:.78rem;font-weight:800}.range-tabs{border:1px solid var(--line);background:#090f18;border-radius:8px;flex:none;align-items:center;gap:.25rem;max-width:100%;padding:.2rem;display:flex;overflow-x:auto}.range-tabs button{min-width:48px;color:var(--muted);background:0 0;border:0;flex:none;padding:.45rem .62rem}.range-tabs button.active{color:#03100a;background:var(--cyan)}.chart{width:100%;min-height:360px;display:block}.chart-empty{color:var(--muted);place-items:center;display:grid}.chart-legend{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;gap:1rem;padding:.75rem .85rem;font-size:.82rem}.chart-legend span{align-items:center;gap:.38rem;display:inline-flex}.chart-legend i{border-radius:999px;width:18px;height:3px;display:inline-block}.legend-price{background:var(--cyan)}.legend-up{background:var(--green)}.legend-down{background:var(--red)}.legend-actual{background:var(--text)}.ledger-section{margin-top:1rem}.section-heading{margin-bottom:.7rem}.section-heading h3{font-size:1rem;line-height:1.25}.prediction-row{background:#0d121cbd;padding:.85rem}.prediction-title{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.38rem;display:flex}.prediction-title span:not(.status){color:var(--cyan);font-size:.82rem;font-weight:900}.status{color:var(--amber);border-color:#facc1573}.status.resolved{color:var(--green);border-color:#34d39973}.prediction-target{text-align:right;min-width:86px;font-size:1.35rem;font-weight:900}.prediction-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:.75rem;display:grid}.prediction-grid span{min-width:0;color:var(--muted);text-transform:uppercase;border:1px solid #243044c7;border-radius:8px;padding:.62rem;font-size:.75rem;font-weight:800}.prediction-grid strong{color:var(--text);text-transform:none;overflow-wrap:anywhere;margin-top:.2rem;font-size:.9rem;font-weight:900;display:block}.prediction-table-wrap{border:1px solid var(--line);background:#0d121cbd;border-radius:8px;overflow-x:auto}.prediction-table{border-collapse:collapse;width:100%;min-width:1080px;font-size:.82rem}.ledger-table{min-width:1320px}.prediction-table th,.prediction-table td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #243044b8;padding:.58rem .68rem}.prediction-table th{z-index:1;color:var(--faint);text-transform:uppercase;background:#0b111b;font-size:.68rem;font-weight:900;position:sticky;top:0}.prediction-table tbody tr:hover{background:#7dd3fc0b}.prediction-table tbody tr:last-child td{border-bottom:0}.prediction-table .status{padding:.14rem .42rem;font-size:.68rem}.run-cell,.sources-cell{min-width:170px}.run-cell strong,.run-cell span,.sources-cell span,.sources-cell small{display:block}.run-cell span,.sources-cell small{color:var(--muted);margin-top:.12rem;font-size:.72rem}.sources-cell{white-space:normal}.sources-cell span{max-width:220px;color:var(--muted);font-size:.78rem;line-height:1.35}.table-action{min-width:72px}.thesis-cell{width:120px;color:var(--muted)}.thesis-disclosure{min-width:0}.thesis-disclosure summary{width:max-content;color:var(--cyan);cursor:pointer;white-space:nowrap;font-size:.76rem;font-weight:800;list-style:none}.thesis-disclosure summary::-webkit-details-marker{display:none}.thesis-disclosure summary:after{content:"+";color:var(--faint);margin-left:.38rem;display:inline-block}.thesis-disclosure[open] summary:after{content:"−"}.thesis-disclosure summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}.thesis-content{white-space:normal;width:min(430px,52vw);padding:.65rem 0 .2rem}.thesis-content p{overflow-wrap:anywhere;font-size:.8rem;line-height:1.5}.thesis-postmortem{border-top:1px solid var(--line);margin-top:.65rem;padding-top:.65rem}.thesis-postmortem strong{color:var(--text);margin-bottom:.25rem;font-size:.74rem;display:block}.modal-backdrop{z-index:20;background:#02060cc7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.snapshot-modal{border:1px solid var(--line-strong);background:#0b111b;border-radius:8px;gap:.85rem;width:min(980px,100%);max-height:min(82vh,820px);padding:1rem;display:grid;overflow:auto;box-shadow:0 30px 100px #00000075}.settings-modal{width:min(560px,100%);max-height:min(90vh,760px)}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.settings-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.settings-row strong,.settings-row span{display:block}.settings-row>div>span,.settings-footer>span{color:var(--muted);margin-top:.2rem;font-size:.78rem}.switch-control{cursor:pointer;flex:none;position:relative}.switch-control input{opacity:0;width:1px;height:1px;position:absolute}.switch-control>span[aria-hidden=true]{border:1px solid var(--line-strong);background:var(--surface-3);border-radius:999px;width:44px;height:24px;transition:border-color .16s,background .16s;display:block}.switch-control>span[aria-hidden=true]:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;margin:3px;transition:transform .16s,background .16s;display:block}.switch-control input:checked+span{background:#34d3992e;border-color:#34d399ad}.switch-control input:checked+span:after{background:var(--green);transform:translate(20px)}.switch-control input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:3px}.profile-settings,.horizon-settings{border:0;min-width:0;margin:0;padding:0}.profile-settings legend,.horizon-settings legend{color:var(--muted);text-transform:uppercase;margin-bottom:.55rem;font-size:.72rem;font-weight:900}.profile-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.profile-options label{cursor:pointer;min-width:0;position:relative}.profile-options input{opacity:0;width:1px;height:1px;position:absolute}.profile-options label>span{border:1px solid var(--line);min-height:58px;color:var(--muted);background:var(--surface-2);text-align:center;border-radius:8px;place-content:center;padding:.55rem .65rem;display:grid}.profile-options strong,.profile-options small{display:block}.profile-options strong{color:var(--text);font-size:.86rem}.profile-options small{margin-top:.12rem;font-size:.7rem}.profile-options input:checked+span{background:#34d3991f;border-color:#34d399ad}.profile-options input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:2px}.horizon-settings>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;display:grid}.horizon-option{cursor:pointer;min-width:0;position:relative}.horizon-option input{opacity:0;width:1px;height:1px;position:absolute}.horizon-option span{border:1px solid var(--line);min-height:40px;color:var(--muted);background:var(--surface-2);text-align:center;border-radius:8px;place-items:center;padding:.55rem .4rem;font-size:.8rem;font-weight:800;display:grid}.horizon-option input:checked+span{color:var(--text);background:#7dd3fc1f;border-color:#7dd3fcb8}.horizon-option input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:2px}.settings-validation{color:var(--red);margin-top:.5rem;font-size:.78rem}.settings-footer{justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-footer>span{margin:0}.settings-select{flex:none;width:108px}.snapshot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.snapshot-grid span{border:1px solid var(--line);background:#090f18b3;border-radius:8px;min-width:0;padding:.62rem .7rem}.snapshot-grid small{color:var(--muted);text-transform:uppercase;font-size:.68rem;font-weight:900;display:block}.snapshot-grid strong{text-overflow:ellipsis;white-space:nowrap;margin-top:.16rem;display:block;overflow:hidden}.source-list{border:1px solid var(--line);background:#090f18b3;border-radius:8px;gap:.35rem;max-height:160px;padding:.65rem;display:grid;overflow:auto}.source-list a,.source-list span{color:var(--cyan);overflow-wrap:anywhere;font-size:.78rem}.snapshot-json{border:1px solid var(--line);color:#dbeafe;background:#070b12;border-radius:8px;max-height:420px;margin:0;padding:.85rem;font-size:.78rem;line-height:1.45;overflow:auto}.postmortem{border-top:1px solid var(--line);margin-top:.75rem;padding-top:.75rem}.positive{color:var(--green)}.negative{color:var(--red)}.error,.empty-state,.blank-slate{border:1px solid var(--line);color:var(--muted);background:#090f18bd;border-radius:8px;padding:.8rem}.error{color:var(--red);background:#fb718514;border-color:#fb71856b}.blank-slate{place-content:center;justify-items:start;gap:.75rem;min-height:calc(100vh - 2rem);display:grid}.blank-slate h2{font-size:clamp(2rem,5vw,4rem)}@media (max-width:1060px){.app-shell{grid-template-columns:1fr}.watch-panel{height:auto;max-height:none;position:static}.watch-list{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}}@media (max-width:760px){.app-shell{padding:.65rem}.watch-list,.prediction-grid,.automation-metrics{grid-template-columns:1fr}.detail-header,.prediction-main{justify-content:stretch;display:grid}.detail-actions{justify-content:stretch}.ledger-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.ledger-status-grid small,.ledger-status-grid strong{white-space:normal}.modal-header,.automation-summary,.automation-actions{justify-content:stretch;display:grid}.automation-actions button{width:100%}.automation-summary{gap:.55rem}.automation-metrics>span{border-bottom:1px solid #2430448c;padding:.52rem 0}.automation-metrics>span:last-child{border-bottom:0}.automation-error,.automation-run-row{align-items:flex-start}.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-table-wrap{margin-inline:-.15rem;display:block}.chart{min-height:300px}.prediction-target{text-align:left}}
