/* Refresh changes values, never the geometry of their containers. */
html{scrollbar-gutter:stable}
[data-value],.ticker,.depth-table{font-variant-numeric:tabular-nums}
.roll-cell{width:1ch!important;vertical-align:bottom}
#ticker{height:29px;min-height:29px;overflow:auto hidden;display:flex;flex-wrap:nowrap}
#ticker>div{flex:0 0 228px;width:228px;min-width:228px;display:grid;grid-template-columns:48px minmax(0,1fr) 63px;gap:5px;align-items:center;box-sizing:border-box;padding:0 10px}
#ticker>div>span{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ticker>div>span{height:14px;line-height:14px}
.asset-price{display:grid!important;grid-template-columns:minmax(0,1fr) 57px 49px;align-items:center;height:25px}
.asset-price>strong,.asset-price>.quote-change{min-width:0;overflow:hidden;white-space:nowrap;margin:0!important}
.asset-price>.quote-change{text-align:right}.asset-price>.card-spark{width:49px;overflow:hidden}
.asset-price>.quote-change{height:14px;line-height:14px}.asset-price>strong{height:23px;line-height:23px}
.asset-price strong,.stock-card-quote strong,.book-current strong{font-family:Consolas,monospace;font-variant-numeric:tabular-nums}
.asset.micro .asset-price strong{font-size:16px}
.stock-card-quote{display:grid!important;grid-template-columns:minmax(0,1fr) 54px 46px;height:32px;align-items:center}
.stock-card-quote>*{min-width:0;overflow:hidden;white-space:nowrap}.stock-card-quote>span{text-align:right}
.stock-card-quote>strong{height:26px;line-height:26px}.stock-card-quote>span{height:16px;line-height:16px}
.stock-spark{width:46px!important}.asset,.stock-card,.chain-card{overflow:hidden}
.live-table{table-layout:fixed;width:100%}.live-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.source-banner,#network-state,.stock-coverage,.stock-inline-status,.chart-status{height:23px;min-height:23px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi label,.kpi strong,.stock-kpis label,.stock-kpis strong,.stock-kpis small,.chain-kpis label,.chain-kpis strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#events{height:120px;overflow:hidden}.event{white-space:nowrap;overflow:hidden;display:grid;grid-template-columns:56px 47px minmax(0,1fr) 74px;gap:4px}.event>*{min-width:0;overflow:hidden;text-overflow:ellipsis}
.book-dialog{height:435px!important;max-height:calc(100dvh - 16px);transition:none!important;scrollbar-gutter:stable;overflow:auto}
.book-dialog .dialog-head{box-sizing:border-box;height:30px;min-height:30px;overflow:hidden}
.book-dialog .book-toolbar{box-sizing:border-box;height:70px;min-height:70px;overflow:hidden}
.book-dialog .book-toolbar label{min-width:0;overflow:hidden}.book-dialog .book-toolbar select{width:100%;min-width:0}
.book-dialog .book-toolbar label{white-space:nowrap}
.top>.pill{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.page-switch{max-width:100%;flex-wrap:wrap}
.book-dialog .book-current{height:56px;box-sizing:border-box;overflow:hidden}
.book-dialog .book-current>strong{display:block;height:30px;line-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-dialog .book-summary{display:grid;grid-template-columns:1fr 1.5fr 1fr;box-sizing:border-box;height:28px;min-height:28px;white-space:nowrap;overflow:hidden;align-items:center;gap:6px}
.book-dialog .book-summary>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-dialog .book-columns{box-sizing:border-box;height:234px;overflow:hidden;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.book-dialog .book-columns section{min-width:0}.book-dialog .depth-table{table-layout:fixed;width:100%}
.book-dialog .depth-table td{height:19px;line-height:19px}.book-dialog .depth-table td .roll-cell{vertical-align:middle}
.book-dialog .book-footer{box-sizing:border-box;height:32px;display:block;overflow:hidden;white-space:nowrap}
.book-dialog .book-footer span{display:block;height:12px;overflow:hidden;text-overflow:ellipsis}
.book-dialog>a{box-sizing:border-box;height:21px;line-height:21px;padding:0 7px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.book-dialog>a:not([href]){color:var(--muted);pointer-events:none}
.book-transition span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.book-dialog .side-title{white-space:nowrap;overflow:hidden}.book-dialog .side-title span{overflow:hidden;text-overflow:ellipsis}
#language-select{width:74px;height:23px;background:var(--panel);color:var(--text);border:1px solid var(--line);font-size:10px}
#connection{display:inline-block;width:91px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stock-venue-row{height:78px;box-sizing:border-box;overflow:hidden}.stock-venue-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.height-digit{width:1ch!important}.chain-height strong{font-variant-numeric:tabular-nums}
.chain-height{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center}
.chain-height strong{height:25px;line-height:25px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-module=exchanges]>.table-scroll{height:145px}
.pool-dialog{height:490px;transition:none!important}.pool-asset-dialog{height:430px}
.pool-status{height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pool-summary{height:25px;white-space:nowrap;overflow:hidden;flex-wrap:nowrap}
.pool-summary>*{overflow:hidden;text-overflow:ellipsis}.pool-note{height:38px;overflow:auto}.pool-distribution{flex-shrink:0}
@container(max-width:450px){.stock-card-quote{grid-template-columns:minmax(0,1fr) 52px;grid-template-rows:20px 12px;height:33px;gap:0 4px}.stock-card-quote>strong{height:20px;line-height:20px;font-size:15px}.stock-spark{grid-column:1/-1;width:100%!important;height:12px;max-width:none;margin:0}.stock-list-mode .stock-spark{display:none}}
@media(max-width:580px){.asset-price{grid-template-columns:minmax(0,1fr) 61px 59px}.asset-price>.card-spark{width:59px}.asset.micro .asset-price strong{font-size:20px}}

/* v15: section navigation and viewport-filling grids. */
#stock-sectors button{position:relative;background:linear-gradient(115deg,hsl(var(--sector-hue,265) 55% 51% / .24),hsl(var(--sector-hue,265) 50% 30% / .07));border-top:2px solid hsl(var(--sector-hue,265) 55% 65% / .7);transition:background .18s,border-color .18s;min-height:49px}
#stock-sectors button:hover,#stock-sectors button[aria-pressed=true]{background:linear-gradient(115deg,hsl(var(--sector-hue,265) 60% 56% / .38),hsl(var(--sector-hue,265) 50% 35% / .14));border-top-color:hsl(var(--sector-hue,265) 70% 75%)}
#stock-sectors button b{color:hsl(var(--sector-hue,265) 65% 76%)}
html[data-theme=light] #stock-sectors button{background:linear-gradient(115deg,hsl(var(--sector-hue,265) 70% 65% / .2),hsl(var(--sector-hue,265) 65% 80% / .12))}
html[data-theme=light] #stock-sectors button b{color:hsl(var(--sector-hue,265) 55% 38%)}
.asset-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-width)),1fr))}
.chain-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.stock-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,218px),1fr))}
.book-dialog .book-sync-toggle{width:23px;height:22px;color:var(--muted);border:1px solid var(--line);font-size:15px;flex-shrink:0}
.book-dialog .book-sync-toggle[aria-expanded=true]{color:var(--purple);background:var(--accent-soft)}
.book-dialog:not(.show-sync) .book-transition,.book-dialog:not(.show-sync) [data-field=book-status]{visibility:hidden;pointer-events:none}
.book-dialog:not(.show-sync) .book-transition{background:transparent}
.book-dialog:not(.show-sync) .book-transition i{animation:none!important}
.book-dialog:is(.failed,.stale) .book-sync-toggle{color:var(--red);border-color:var(--red)}
.book-dialog [data-field=quote-meta]{visibility:hidden}
.book-dialog.show-sync [data-field=quote-meta],.book-dialog.quote-delayed [data-field=quote-meta]{visibility:visible}
.book-current>small{display:flex;align-items:center;gap:5px;min-width:0;height:14px;white-space:nowrap}
.book-current [data-field=quote-venue]{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--purple);text-decoration:none;font-size:9px}
.book-current [data-field=quote-venue]:hover{text-decoration:underline}.book-current [data-field=quote-venue]:not([href]){pointer-events:none;color:var(--muted)}
@container(max-width:450px){.stock-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.stock-list-mode .stock-card-grid{grid-template-columns:1fr}}

#stock-source-coverage{padding:4px 9px;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}#stock-source-coverage>div{display:flex;gap:7px;align-items:baseline;padding:3px 0}#stock-source-coverage b{flex:0 0 82px;color:var(--purple)}#stock-source-coverage span{min-width:0;line-height:1.5}.stock-issuer{max-width:42%;overflow:hidden;text-overflow:ellipsis}.stock-card[data-freshness] .stock-card-tags{white-space:nowrap}

/* Each row consumes the available width, including the final partial row. */
.matrix:not(.list-mode) .asset-grid{display:flex;flex-wrap:wrap;align-items:flex-start}.matrix:not(.list-mode) .asset-grid>.asset{flex:1 1 var(--card-width);max-width:100%;height:74px}.matrix:not(.list-mode) .asset-grid.comfort>.asset{height:92px}.asset-grid>.group-empty{width:100%}
.stock-card-grid{display:flex;flex-wrap:wrap}.stock-card-grid>.stock-card{flex:1 1 218px;max-width:100%}.stock-list-mode .stock-card-grid{display:grid;grid-template-columns:1fr}
.chain-module[data-chain-module=matrix] .chain-grid{display:flex;flex-wrap:wrap}.chain-grid>.chain-card{flex:1 1 210px;max-width:100%}
.book-dialog.failed [data-field=book-status],.book-dialog.failed .book-transition{visibility:visible}
@container(max-width:450px){.stock-card-grid>.stock-card{flex-basis:150px}}
@media(max-width:580px){.matrix:not(.list-mode) .asset-grid>.asset{height:82px}.matrix:not(.list-mode) .asset-grid.comfort>.asset{height:92px}}
@media(max-width:430px){.chain-grid>.chain-card{flex-basis:150px}}

.book-dialog .book-sync-toggle{width:34px;font-size:9px}.book-dialog:not(.show-sync) [data-field=book-time]{visibility:hidden}

/* Static stock metadata owns a reserved area; quote refreshes never resize it. */
.book-dialog[data-book-kind=stock]{height:519px!important}
.book-stock-info{height:84px;box-sizing:border-box;margin:0 7px;padding:5px 7px;border:1px solid var(--line);background:var(--raised);display:grid;grid-template-rows:15px minmax(0,1fr) 12px;gap:2px;overflow:hidden}
.book-profile-heading{display:flex;gap:8px;min-width:0;font-size:9px}.book-profile-heading>b{color:var(--purple);flex-shrink:0}.book-profile-heading>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.book-stock-info p{margin:0;font-size:10px;line-height:15px;overflow:auto;overflow-wrap:anywhere;scrollbar-width:thin;user-select:text}.book-stock-info>a{font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}.book-stock-info>a[href]:hover{color:var(--purple)}
.book-stock-links{display:flex;align-items:center;justify-content:space-between;gap:10px;height:21px;padding:0 7px;font-size:9px;white-space:nowrap}.book-stock-links>a{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--purple);text-decoration:none}.book-stock-links>a:last-child{margin-left:auto;text-align:right;max-width:55%}.book-stock-links>a:not([href]),.book-stock-info>a:not([href]){pointer-events:none;color:var(--muted)}
.stock-news-tools{flex-wrap:wrap;min-height:36px}.stock-news-tools #stock-news-language{width:75px;max-width:90px;margin-left:auto}.stock-news-tools #stock-news-scope{margin-left:0;width:78px}.stock-news-tools button{flex-shrink:0}

.stock-market-filters{display:flex;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line)}.stock-market-filters .stock-chips{border-bottom:0}#stock-market-types{margin-left:auto;gap:4px;flex-wrap:nowrap}#stock-market-types>span{font-size:9px;color:var(--muted);margin-right:4px;white-space:nowrap}#stock-market-types button{white-space:nowrap;border:1px solid var(--line);padding:3px 9px}#stock-market-types [data-stock-market=spot][aria-pressed=true]{color:var(--green);border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,transparent)}#stock-market-types [data-stock-market=contract][aria-pressed=true]{color:var(--purple);border-color:var(--purple);background:var(--accent-soft)}
