: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,.stat-strip{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}.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{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}.workflow-status{border:1px solid var(--line);min-height:38px;color:var(--muted);white-space:nowrap;background:#090f18b8;border-radius:999px;align-items:center;gap:.42rem;padding:.42rem .62rem;font-size:.78rem;font-weight:800;display:inline-flex}.workflow-status span{background:var(--green);border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 3px #34d39921}.workflow-status.running{color:#dbeafe;background:#7dd3fc14;border-color:#7dd3fc6b}.workflow-status.running span{background:var(--cyan);animation:1.1s ease-in-out infinite pulse-status}@keyframes pulse-status{0%,to{opacity:.7;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}.stat-strip{background:#111927b8;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:.85rem;display:grid}.stat-strip div{border-right:1px solid var(--line);padding:.8rem .9rem}.stat-strip div:last-child{border-right:0}.stat-strip span{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:800;display:block}.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}.stat-strip strong{margin-top:.18rem;font-size:1.25rem;display:block}.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);padding:.85rem}.chart-toolbar strong{margin-top:.18rem;display:block}.range-tabs{border:1px solid var(--line);background:#090f18;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:.25rem;padding:.2rem;display:grid}.range-tabs button{color:var(--muted);background:0 0;border:0;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}.prediction-run-list{gap:.85rem;display:grid}.prediction-run{border:1px solid var(--line);background:#0d121cbd;border-radius:8px;overflow:hidden}.run-summary{border-bottom:1px solid var(--line);background:#111927c2;justify-content:space-between;align-items:center;gap:.9rem;padding:.72rem .85rem;display:flex}.run-summary strong,.run-summary span{display:block}.run-summary span{color:var(--muted);margin-top:.16rem;font-size:.82rem}.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}.prediction-table.compact-table{min-width:820px}.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}.thesis-cell{min-width:320px;max-width:520px;color:var(--muted);overflow-wrap:anywhere;text-overflow:clip;line-height:1.45;overflow:visible;white-space:normal!important}.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}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.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,.stat-strip,.prediction-grid{grid-template-columns:1fr}.detail-header,.prediction-main,.chart-toolbar{justify-content:stretch;display:grid}.detail-actions{justify-content:stretch}.workflow-status{white-space:normal;text-align:center;justify-content:center;width:100%}.detail-actions button{flex:1}.run-summary,.modal-header{justify-content:stretch;display:grid}.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-table.compact-table{min-width:760px}.thesis-cell{min-width:300px;max-width:360px}.stat-strip div{border-right:0;border-bottom:1px solid var(--line)}.stat-strip div:last-child{border-bottom:0}.chart{min-height:300px}.prediction-target{text-align:left}}
