:root{--bg:#0d1012;--panel:#14181b;--panel2:#181d21;--line:#293138;--text:#e7edf1;--muted:#82909a;--blue:#22a8e0;--blue2:#29b5ff;--amber:#ffb61e;--green:#43b581;--red:#ed4245}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,Segoe UI,Arial,sans-serif}a{color:var(--blue);text-decoration:none}.top{min-height:72px;background:#101416;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100% - 1400px)/2));position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:11px;min-width:210px}.brand small,.brand b{display:block}.brand small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--blue);color:var(--blue);font-weight:800;border-radius:6px}.mark.big{width:62px;height:62px;font-size:22px;margin:auto}.top nav{display:flex;gap:4px;flex:1;overflow:auto}.top nav a{color:#aab5bc;padding:25px 11px 22px;border-bottom:3px solid transparent;white-space:nowrap}.top nav a:hover,.top nav a.active{color:white;border-color:var(--blue)}button,.primary{border:0;border-radius:5px;padding:10px 16px;font-weight:700;cursor:pointer}.primary{background:var(--blue);color:#071014}.primary:hover{background:var(--blue2)}.ghost{background:transparent;color:#aab5bc;border:1px solid var(--line)}main{max-width:1400px;margin:auto;padding:30px 24px 60px}.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.pagehead h1{margin:0;font-size:26px}.pagehead p{margin:4px 0;color:var(--muted)}.live{font-size:11px;color:#91a0aa}.live i{display:inline-block;width:8px;height:8px;background:var(--green);border-radius:50%;margin-right:7px}.grid{display:grid}.cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:20px}.assetcard{color:var(--text)}.assetcard:hover{border-color:#3d4b54}.card h2,.panel h2{margin:3px 0 12px;font-size:17px}.card small{color:var(--muted);letter-spacing:.08em}.row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.pill{display:inline-block;padding:4px 8px;border-radius:4px;background:#252d32;color:#bdc7cd;font-size:11px;font-weight:800;letter-spacing:.04em}.pill.up{background:rgba(67,181,129,.13);color:#67d69d}.pill.down{background:rgba(237,66,69,.13);color:#ff7779}.score{font-size:38px;font-weight:800;margin:18px 0 5px}.score small{font-size:13px;color:var(--muted)}.meter{height:5px;background:#252d32;border-radius:4px;overflow:hidden}.meter b{display:block;height:100%;background:var(--blue)}.card p,.muted{color:var(--muted)}.twocol{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.feed{padding:13px 0;border-bottom:1px solid var(--line)}.feed:last-child{border:0}.feed span,.feed small{color:var(--muted)}.feed p{white-space:pre-line;color:#aeb9bf}.statrow{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:20px}.danger{color:#ff7779}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}input,select{width:100%;background:#0e1214;border:1px solid #303941;color:var(--text);padding:11px;border-radius:5px;font-size:14px}label{display:grid;gap:6px;color:#aab5bc}.stack{display:grid;gap:14px}.check{display:flex;align-items:center}.check input{width:auto}.assettoolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.assettoolbar>div:first-child{display:flex;gap:14px;align-items:baseline;font-size:22px}.assettoolbar #lastPrice{color:var(--amber)}.controls{display:flex;gap:8px}.controls select{width:auto}.chartlayout{grid-template-columns:minmax(0,3fr) minmax(260px,1fr)}#chart{width:100%!important;height:390px!important}.hidden{display:none}.error{background:rgba(237,66,69,.12);border:1px solid rgba(237,66,69,.4);padding:10px;border-radius:5px;color:#ff8b8d}.loginbody{min-height:100vh;display:grid;place-items:center}.loginbox{width:min(390px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);padding:34px;border-radius:8px}.loginbrand{text-align:center;margin-bottom:25px}.loginbrand h1{margin:12px 0 0}.loginbrand p{margin:0;color:var(--muted)}.loginbox form{display:grid;gap:15px}.loginbox .primary{margin-top:5px}code{background:#0c1012;border:1px solid var(--line);padding:5px 8px;border-radius:4px;color:#d7e0e5}footer{text-align:center;color:#5f6b73;border-top:1px solid #1d2428;padding:25px}@media(max-width:900px){.top{padding:12px 16px;flex-wrap:wrap;gap:8px}.brand{min-width:auto}.top nav{order:3;width:100%}.top nav a{padding:10px}.twocol,.chartlayout{grid-template-columns:1fr}.assettoolbar{align-items:flex-start;flex-direction:column}.controls{width:100%;flex-wrap:wrap}.controls select{flex:1}.pagehead{align-items:flex-start}.cards{grid-template-columns:1fr}main{padding:22px 14px 50px}.panel{overflow-x:auto}}
.activeToggle{border-color:var(--blue)!important;color:var(--blue2)!important;background:rgba(34,168,224,.08)!important}

.filterbar{display:flex;gap:10px;align-items:end;margin-bottom:14px;flex-wrap:wrap}.filterbar label{min-width:120px;flex:1}.filterbuttons{display:flex;gap:8px}.buttonlike{display:inline-flex;align-items:center;justify-content:center}.settingsgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.testbuttons{display:flex;gap:8px;flex-wrap:wrap}.testbuttons form{display:inline}.success{background:rgba(67,181,129,.12);border:1px solid rgba(67,181,129,.4);padding:10px;border-radius:5px;color:#67d69d;margin-bottom:14px}@media(max-width:700px){.settingsgrid{grid-template-columns:1fr}}

.heartcol{text-align:center;width:90px}.heart{border:0;background:transparent;font-size:25px;line-height:1;color:#74808a;cursor:pointer}.heart.selected{color:#e5484d}.heart:hover{transform:scale(1.08)}
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:12px;margin-bottom:18px}.dashboard-card{position:relative;min-height:150px;padding:14px!important;cursor:grab}.dashboard-card.pinned{cursor:default}.dashboard-card.dragging{opacity:.35}.dashboard-card .card-link{display:block;color:inherit;text-decoration:none}.dashboard-card h2{font-size:19px;margin:3px 0}.dashboard-card p{font-size:12px;margin-bottom:0}.dashboard-card .score.compact{font-size:28px;margin:8px 0}.pin-btn{position:absolute;right:8px;top:7px;z-index:3;border:0;background:transparent;color:#71808a;font-size:16px;cursor:pointer}.pin-btn.selected{color:#ffb61e}.drop-placeholder{min-height:150px;border:1px dashed #22a8e0;border-radius:6px;background:rgba(34,168,224,.10)}

/* v0.2.2 dashboard/market control corrections */
.heartcol{text-align:center;width:105px}
button.heart{appearance:none!important;-webkit-appearance:none!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:5px!important;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
button.heart svg{width:30px;height:30px;fill:transparent;stroke:#87949d;stroke-width:1.7;transition:transform .12s ease,fill .12s ease,stroke .12s ease}
button.heart.selected svg{fill:#e5484d;stroke:#e5484d}
button.heart:hover svg{transform:scale(1.1);stroke:#c6d0d6}
button.heart.selected:hover svg{stroke:#e5484d}

.dashboard-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;align-items:stretch;margin-bottom:18px}
.dashboard-grid .dashboard-card{width:auto!important;max-width:none!important;min-width:0!important;min-height:168px!important;padding:14px!important;margin:0!important;position:relative;cursor:grab}
.dashboard-grid .dashboard-card.pinned{cursor:default}
.dashboard-grid .dashboard-card.dragging{display:none!important}
.dashboard-grid .drop-placeholder{min-width:0;min-height:168px;border:1px dashed #36b7ee;border-radius:6px;background:rgba(54,183,238,.14);box-shadow:inset 0 0 0 1px rgba(54,183,238,.08)}
button.pin-btn{appearance:none!important;-webkit-appearance:none!important;position:absolute;right:8px;top:7px;z-index:4;background:transparent!important;border:0!important;box-shadow:none!important;padding:4px!important;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer}
button.pin-btn svg{width:22px;height:22px;fill:transparent;stroke:#87949d;stroke-width:1.55;stroke-linejoin:round;transform:rotate(-38deg);transform-origin:50% 50%;transition:transform .14s ease,fill .14s ease,stroke .14s ease}
button.pin-btn.selected svg{transform:rotate(0deg);fill:#ffb61e;stroke:#ffb61e}
button.pin-btn:hover svg{stroke:#d1d9de}
button.pin-btn.selected:hover svg{stroke:#ffb61e}
@media(max-width:1100px){.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:800px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.dashboard-grid{grid-template-columns:1fr!important}}

/* v0.2.3 dashboard title bar and animated reflow */
.dashboard-grid .dashboard-card{padding:0!important;overflow:hidden;cursor:default}
.dashboard-card-header{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 10px;background:linear-gradient(180deg,#1a242a 0%,#172027 100%);border-bottom:1px solid #2b3a43;cursor:grab;user-select:none}
.dashboard-card.pinned .dashboard-card-header{cursor:default}
.dashboard-card-header:active{cursor:grabbing}
.dashboard-card-title{display:flex;align-items:center;gap:9px;color:#d9e4ea;font-size:13px;letter-spacing:.02em}
.drag-grip{width:10px;height:16px;display:grid;grid-template-columns:repeat(2,3px);grid-auto-rows:3px;gap:2px;opacity:.55}
.drag-grip i{display:block;width:3px;height:3px;border-radius:50%;background:#80919b}
.dashboard-card.pinned .drag-grip{opacity:.18}
.dashboard-card-body{padding:12px 14px 13px;min-height:128px}
.dashboard-card-body .asset-name{display:block;margin-top:4px}
.dashboard-card-header button.pin-btn{position:static!important;width:28px;height:28px;padding:3px!important;flex:0 0 auto}
.dashboard-card-header button.pin-btn svg{width:19px;height:19px}
.dashboard-grid .drop-placeholder{min-height:168px;transition:background-color .12s ease,border-color .12s ease}
.dashboard-grid .dashboard-card{will-change:transform}

/* v0.2.4 pointer-driven live sortable dashboard */
.dashboard-card-header{touch-action:none}
body.sf-dragging{user-select:none}
.dashboard-card.drag-source{display:none!important}
.drag-ghost{position:fixed!important;z-index:10000!important;margin:0!important;pointer-events:none!important;opacity:.94;box-shadow:0 14px 38px rgba(0,0,0,.48)!important;transform:none;will-change:left,top,transform}
.drag-ghost .dashboard-card-header{cursor:grabbing!important}
.drag-ghost .pin-btn{pointer-events:none!important}
.dashboard-grid .drop-placeholder{display:block;box-sizing:border-box;border:1px dashed #36b7ee!important;background:rgba(54,183,238,.14)!important;box-shadow:inset 0 0 0 1px rgba(54,183,238,.08)!important}

button.danger{background:#3a1d20;border:1px solid #713038;color:#ff9aa5}button.danger:hover{background:#4a2328}.small{padding:6px 10px;font-size:12px}

/* v0.3.2 recent-alert metadata spacing */
.alert-item strong + time,.alert-item strong + .muted,.alert-item b + time,.alert-item b + .muted{margin-left:10px}
.alert-time{display:inline-block;margin-left:10px;color:#758995;font-weight:400;white-space:nowrap}

/* v0.4.0 source manager */
.source-list{display:grid;gap:14px;margin:14px 0}.source-card{border-left:3px solid var(--line)}.source-card.source-active{border-left-color:var(--green)}.source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.source-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.source-title h2{margin:0}.source-status{font-size:12px;font-weight:800;color:#67d69d}.source-status.off{color:#87949d}.source-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.source-meta span{background:#101518;border:1px solid var(--line);padding:10px;border-radius:5px;color:var(--muted);font-size:12px}.source-meta b{display:block;color:var(--text);margin-top:4px;overflow-wrap:anywhere}.source-editor,.source-edit{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.source-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.source-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.source-actions form{display:inline}.source-card details{border-top:1px solid var(--line);padding-top:12px}.source-card summary{cursor:pointer;color:var(--blue2)}button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:850px){.source-fields,.source-meta{grid-template-columns:1fr}.source-head{align-items:flex-start}}

/* v0.4.1 capability-based source manager */
.source-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.source-summary .panel{padding:14px 16px}.source-summary span{display:block;color:var(--muted);font-size:12px}.source-summary strong{display:block;font-size:24px;margin-top:4px}.source-tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 16px;padding-bottom:3px}.source-tabs a{white-space:nowrap;text-decoration:none;color:var(--muted);border:1px solid var(--line);background:#11171a;padding:9px 12px;border-radius:5px}.source-tabs a:hover{color:var(--text);border-color:#38505e}.source-tabs a.active{color:var(--blue2);border-color:var(--blue);background:rgba(34,168,224,.08)}.source-tabs a span{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;margin-left:5px;border-radius:10px;background:#202a30;color:#aab8c0;font-size:11px}.source-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.source-overview-grid a{display:block;text-decoration:none;background:#101518;border:1px solid var(--line);padding:13px;border-radius:5px}.source-overview-grid span{display:block;color:var(--text);font-weight:700}.source-overview-grid b{display:block;color:var(--muted);font-size:12px;margin-top:5px}.source-meta.source-meta-4{grid-template-columns:repeat(4,minmax(0,1fr))}.health-healthy{color:#67d69d!important}.health-error{color:#ff8e98!important}.health-unknown{color:#a7b1b7!important}.source-healthline{font-size:12px}.source-empty{text-align:center;padding:32px!important}@media(max-width:850px){.source-summary,.source-overview-grid{grid-template-columns:1fr}.source-meta.source-meta-4{grid-template-columns:1fr}}

/* v0.4.3 market-card compaction and alert timestamp spacing */
.source-list .source-card{padding:12px 16px}
.source-list .source-card .source-head h2{font-size:17px;margin:0}
.source-list .source-card .source-head p{margin:6px 0 8px}
.source-list .source-card details{padding-top:8px}
.source-list .source-card .source-actions{margin-top:8px}
.market-actions{display:flex;align-items:center;width:100%}
.market-actions form{order:1}
.market-actions .heart{order:2;margin-left:auto}
.feed .alert-time{display:inline-block;margin-left:10px;color:#758995;font-weight:400;white-space:nowrap}

/* v0.6.9 SignalForged branding */
.site-banner{height:150px;max-height:150px;background:var(--bg);display:flex;align-items:center;justify-content:center;border-bottom:1px solid #151b1f;padding:0 20px;overflow:hidden}
.site-banner img{display:block;width:384px;max-width:100%;height:150px;max-height:150px;object-fit:contain}
.brand-icon{display:block;width:38px;height:38px;object-fit:contain;border-radius:6px}
.login-icon{display:block;width:82px;height:82px;object-fit:contain;margin:0 auto 12px}
@media(max-width:700px){.site-banner{height:auto;max-height:150px;padding:0 12px}.site-banner img{width:min(384px,100%);height:auto;max-height:150px}.login-icon{width:72px;height:72px}}

.pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem;padding-top:.8rem;border-top:1px solid #263138}.pager-nav{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.pager button[disabled]{opacity:.4;cursor:not-allowed}

.sf-dialog{background:#11171b;color:var(--text);border:1px solid #34424a;border-radius:8px;min-width:min(440px,90vw);padding:1.25rem;box-shadow:0 18px 60px #000a}.sf-dialog::backdrop{background:#000a}.sf-dialog h3{margin-top:0}

/* v0.7.2 signal performance */
.performance-filterbar{display:grid;grid-template-columns:repeat(4,minmax(125px,1fr)) repeat(4,105px) repeat(2,minmax(135px,1fr)) auto;gap:9px;align-items:end}.performance-filterbar label{min-width:0;flex:none}.performance-filterbar .perf-filter-number input{min-width:0}.performance-filterbar .filterbuttons{align-self:end}.performance-cards{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:10px;margin-bottom:14px}.performance-stat{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:102px}.performance-stat-head{min-height:40px;padding:10px 14px 8px;border-bottom:1px solid var(--line);display:flex;align-items:center;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;line-height:1.15}.performance-stat-value{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 14px;font-size:22px;font-weight:800;line-height:1}.performance-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}.performance-table{overflow-x:auto;margin-bottom:14px}.performance-table h2{margin-top:0}.performance-note{margin:14px 2px}@media(max-width:1250px){.performance-filterbar{grid-template-columns:repeat(4,minmax(130px,1fr)) repeat(4,95px);}.performance-filterbar .perf-filter-date,.performance-filterbar .filterbuttons{grid-row:2}.performance-filterbar .perf-filter-date{min-width:150px}}@media(max-width:1100px){.performance-cards{grid-template-columns:repeat(4,minmax(140px,1fr))}}@media(max-width:700px){.performance-filterbar{display:flex}.performance-filterbar label{min-width:calc(50% - 8px);flex:1}.performance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.7.2a compact alerts */
.alert-filterbar{padding:13px 16px;gap:8px}.alert-filterbar label{min-width:145px}.alert-filterbar select{padding:8px 10px}.alert-filterbar .ghost{padding:8px 14px}.alert-feed-panel{padding:0 16px;overflow:visible}.alert-row{border-bottom:1px solid var(--line)}.alert-row:last-child{border-bottom:0}.alert-summary{display:grid;grid-template-columns:76px 82px 92px 82px minmax(220px,1fr) 112px 16px;gap:10px;align-items:center;min-height:56px;padding:8px 4px;cursor:pointer;list-style:none}.alert-summary::-webkit-details-marker{display:none}.alert-summary:hover{background:#171d20}.alert-clock{font-variant-numeric:tabular-nums;color:#82909a;font-size:12px}.alert-asset{color:#f1f5f7;white-space:nowrap}.signal-badge,.direction-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-width:66px;padding:3px 7px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.signal-buy{background:rgba(67,181,129,.18);color:#72dfa8}.signal-accumulate{background:rgba(67,181,129,.10);color:#9adbb9}.signal-sell{background:rgba(237,66,69,.18);color:#ff7c7f}.signal-reduce{background:rgba(255,182,30,.13);color:#ffc85b}.signal-hold{background:#252d32;color:#bdc7cd}.direction-badge.bullish{background:rgba(67,181,129,.13);color:#67d69d}.direction-badge.bearish{background:rgba(237,66,69,.13);color:#ff7779}.direction-badge.neutral{background:#252d32;color:#bdc7cd}.alert-reasons{min-width:0;color:#aeb9bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.discord-status{font-size:11px;white-space:nowrap}.discord-status.sent,.discord-ok{color:#67d69d}.discord-status.not-sent,.discord-fail{color:#ff9a72}.alert-chevron{font-size:20px;color:#697780;transition:transform .15s ease}.alert-row[open] .alert-chevron{transform:rotate(90deg)}.alert-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding:4px 28px 14px 260px;color:#aeb9bf}.alert-detail span{display:block;color:#758995;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.alert-detail p{white-space:pre-line;margin:0;color:#c0c9ce}.alert-detail-meta{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-content:start}.alert-detail-meta span{margin:0}.alert-detail-meta strong{font-size:11px;font-weight:600;margin-bottom:5px}.pager-size label{display:flex;align-items:center;gap:7px}.pager-size select{width:auto;padding:7px 9px}@media(max-width:1050px){.alert-summary{grid-template-columns:68px 76px 88px 76px minmax(160px,1fr) 105px 14px}.alert-detail{padding-left:230px}}@media(max-width:780px){.alert-feed-panel{padding:0 10px}.alert-summary{grid-template-columns:65px 1fr auto auto;gap:6px 8px;padding:9px 2px}.alert-clock{grid-column:1}.alert-asset{grid-column:2}.signal-badge{grid-column:3}.direction-badge{grid-column:4}.alert-reasons{grid-column:1/5;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.discord-status{grid-column:1/4}.alert-chevron{grid-column:4;grid-row:3;text-align:right}.alert-detail{grid-template-columns:1fr;padding:4px 4px 14px}.alert-filterbar label{min-width:calc(50% - 8px)}}

/* v0.7.2b alert expanded detail */
.alert-detail{display:grid;grid-template-columns:minmax(440px,1.6fr) minmax(180px,.55fr) minmax(260px,.85fr);gap:28px;padding:8px 4px 18px;color:#aeb9bf;align-items:start}
.alert-detail-heading{display:block;color:#758995;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}
.alert-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:5px 26px;color:#c0c9ce;font-size:13px}
.alert-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px 10px;align-items:baseline}.alert-kv span{display:block;color:#758995;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin:0}.alert-kv strong{font-size:11px;font-weight:600;color:#c0c9ce;white-space:nowrap}.alert-kv .discord-ok{color:#67d69d}.alert-kv .discord-fail{color:#ff9a72}
@media(max-width:1200px){.alert-detail{grid-template-columns:minmax(380px,1.5fr) minmax(160px,.6fr) minmax(240px,.9fr);padding-left:4px;gap:20px}}
@media(max-width:900px){.alert-detail{grid-template-columns:1fr 1fr;padding:8px 4px 16px}.alert-evidence{grid-column:1/-1}}
@media(max-width:620px){.alert-detail{grid-template-columns:1fr}.alert-evidence-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.alert-evidence{grid-column:auto}}

/* v0.7.2d dashboard operational overview */
.dashboard-lower{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(330px,.95fr);gap:14px;align-items:start}.dashboard-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.dashboard-panel-head h2{margin:0}.dashboard-panel-head a{font-size:12px;text-decoration:none}.dashboard-alerts{padding:16px}.dashboard-alert-list{border-top:1px solid var(--line)}.dashboard-alert-row{display:grid;grid-template-columns:54px 82px 88px 82px 76px 108px 14px;gap:8px;align-items:center;min-height:48px;padding:6px 2px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.dashboard-alert-row:hover{background:#171d20}.dashboard-alert-row time{font-size:11px;color:#82909a;font-variant-numeric:tabular-nums}.dashboard-alert-row>strong{font-size:12px;color:#f1f5f7}.dashboard-alert-row .signal-badge,.dashboard-alert-row .direction-badge{min-width:62px;font-size:9px}.dashboard-alert-score,.dashboard-alert-confidence{font-size:11px;color:#91a0a9;white-space:nowrap}.dashboard-alert-arrow{font-size:18px;color:#697780}.dashboard-system{padding:16px}.status-chip{font-size:10px;font-weight:800;letter-spacing:.05em}.status-healthy{color:#67d69d}.status-degraded{color:#ffc85b}.status-error{color:#ff7779}.status-unknown{color:#87949d}.system-section{padding:10px 0;border-top:1px solid var(--line)}.system-section:first-child{border-top:0;padding-top:0}.system-section h3{margin:0 0 5px;color:#758995;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.system-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:4px 0;font-size:11px}.system-row>span{color:#aeb9bf}.system-row>b{color:#e2e8eb;text-align:right;font-weight:600}.provider-list{line-height:1.45}.live-state{display:inline-flex;align-items:center;gap:5px;text-transform:capitalize}.live-state i{width:7px;height:7px;border-radius:50%;background:#87949d}.live-state.state-healthy i{background:#50c993}.live-state.state-error i{background:#ed5558}.live-state.state-neutral i{background:#87949d}.alert-row:target{scroll-margin-top:90px;box-shadow:inset 3px 0 0 var(--blue)}
@media(max-width:1050px){.dashboard-lower{grid-template-columns:1fr}.dashboard-alert-row{grid-template-columns:52px 78px 82px 78px 72px 104px 14px}}
@media(max-width:700px){.dashboard-alert-row{grid-template-columns:48px 1fr auto auto}.dashboard-alert-score,.dashboard-alert-confidence{display:none}.dashboard-alert-arrow{grid-column:4}.dashboard-alert-row .direction-badge{grid-column:4;grid-row:1}.dashboard-alert-row .signal-badge{grid-column:3}.dashboard-system{padding:14px}}


/* v0.7.2e live UI and expanded alert delineation */
.alert-row[open]{position:relative;padding-left:12px;border-left:3px solid var(--blue);border-radius:5px 0 0 5px}
.alert-row[open] .alert-summary,.alert-row[open] .alert-detail{padding-left:10px}
.alert-row:target{box-shadow:none}
.live.global-degraded{color:#ffc85b}.live.global-degraded i{background:#ffc85b}.live.global-offline{color:#ff7779}.live.global-offline i{background:#ed5558}
.live-flash{animation:sfLiveFlash .55s ease}@keyframes sfLiveFlash{0%{background:rgba(34,168,224,.12)}100%{background:transparent}}

/* v0.7.2g wider application frame and performance filter polish */
@media(min-width:901px){
  .top{padding-left:max(24px,calc((100% - 1520px)/2));padding-right:max(24px,calc((100% - 1520px)/2))}
  main{max-width:1520px}
}
.performance-filterbar{
  grid-template-columns:repeat(4,minmax(120px,1fr)) repeat(2,125px) repeat(2,110px) repeat(2,145px);
  gap:10px;
  align-items:end;
}
.performance-filterbar label{white-space:nowrap;min-width:0}
.performance-filterbar .perf-filter-number{min-width:0}
.performance-filterbar .perf-filter-number input{width:100%;min-width:0}
.performance-filterbar .perf-filter-date{min-width:0}
.performance-filterbar .filterbuttons{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:2px}
@media(max-width:1450px) and (min-width:701px){
  .performance-filterbar{grid-template-columns:repeat(4,minmax(125px,1fr)) repeat(4,110px)}
  .performance-filterbar .perf-filter-date{grid-row:2;min-width:150px}
  .performance-filterbar .filterbuttons{grid-column:auto;grid-row:2;justify-content:flex-start}
}
@media(max-width:700px){
  .performance-filterbar{display:flex}
  .performance-filterbar label{white-space:normal}
  .performance-filterbar .filterbuttons{width:100%;justify-content:flex-start}
}

/* v0.7.4 evidence attribution */
.attribution-filterbar{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr)) 110px repeat(2,minmax(135px,1fr));gap:9px;align-items:end}.attribution-filterbar .filterbuttons{grid-column:1/-1;display:flex;justify-content:flex-end}.attribution-cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin-bottom:14px}@media(max-width:1100px){.attribution-filterbar{grid-template-columns:repeat(4,minmax(130px,1fr))}.attribution-cards{grid-template-columns:repeat(3,minmax(140px,1fr))}}@media(max-width:700px){.attribution-filterbar{display:flex}.attribution-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.7.4b analysis exports */
.analysis-exportbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 12px}.analysis-exportbar .muted{margin-right:4px}@media(max-width:700px){.analysis-exportbar{justify-content:flex-start;flex-wrap:wrap}}
/* v0.7.4g live chart controls and compact dashboard market charts */
.icon-toggle{width:42px;height:38px;padding:7px!important;display:grid;place-items:center}.icon-toggle svg{width:27px;height:18px}.chart-controls{align-items:center}.dashboard-market-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:7px}.dashboard-spark-wrap{height:50px;min-width:0}.dashboard-spark{width:100%;height:50px;display:block;overflow:visible}.dashboard-spark .spark-line{fill:none;stroke:#22a8e0;stroke-width:1.8;vector-effect:non-scaling-stroke}.dashboard-spark .spark-fill{fill:rgba(34,168,224,.08);stroke:none}.dashboard-signal-mini{text-align:right;white-space:nowrap}.dashboard-signal-mini .mini-score{font-size:21px;line-height:1;font-weight:800}.dashboard-signal-mini small{font-size:10px;color:var(--muted)}.dashboard-signal-meta{font-size:11px;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-card-body{padding-top:9px!important;padding-bottom:9px!important}.dashboard-card-body .row{align-items:center}.dashboard-card-body .asset-name{margin-top:1px!important}.dashboard-grid .dashboard-card{min-height:168px!important}
.history-presets{display:flex;gap:4px;align-items:center;margin-top:10px;flex-wrap:wrap}.history-presets button{background:transparent;border:0;color:#82909a;padding:5px 8px;border-radius:4px;font-weight:700;cursor:pointer}.history-presets button:hover,.history-presets button.active{background:#252d32;color:#e7edf1}.asset-chart-panel canvas{cursor:crosshair;touch-action:none}.asset-chart-panel canvas.dragging{cursor:grabbing}

/* v0.7.4g12 Coinbase-style OHLCV chart header */
.asset-chart-panel{position:relative}
.chart-ohlcv{min-height:20px;margin:0 0 4px 2px;font-size:12px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8f9aa3}
.chart-ohlcv.up{color:#43b581}
.chart-ohlcv.down{color:#ed5961}
.chart-ohlcv .ohlcv-vol{color:#c5cbd0}
