.data-table{border-collapse:collapse;width:100%;& th{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:var(--space-2) 6px;border-bottom:1px solid var(--border)}& td{border-bottom:1px solid var(--border);color:var(--text);padding:10px 6px;font-size:11px}& tr:last-child td{border-bottom:none}& .time{color:var(--text-muted);font-family:monospace;font-size:11px}& .price,& .value{font-weight:var(--font-semibold);font-family:monospace}& .change{font-size:var(--text-xs);font-weight:var(--font-semibold)}}.data-table--fixed{table-layout:fixed;width:100%}.positions-table{border-collapse:collapse;width:100%;& th{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:var(--space-2) 6px;border-bottom:1px solid var(--border)}& td{border-bottom:1px solid var(--border);color:var(--text);padding:10px 6px;font-family:monospace;font-size:11px}& tr:last-child td{border-bottom:none}& .date{color:var(--text-muted);white-space:nowrap}& .col-datetime{width:28%}}.trade-row-buy{background:color-mix(in srgb, var(--success) 15%, transparent)}.trade-row-sell{background:color-mix(in srgb, var(--danger) 15%, transparent)}.trade-row{cursor:pointer;&:active{opacity:.7}}.row-chevron{color:var(--text-muted);font-size:var(--text-sm)}.trade-badge{border-radius:var(--radius-sm);width:20px;height:20px;font-size:var(--text-xs);font-weight:var(--font-bold);justify-content:center;align-items:center;display:inline-flex;&.buy{background:color-mix(in srgb, var(--success) 20%, transparent);color:var(--success)}&.sell{background:color-mix(in srgb, var(--danger) 20%, transparent);color:var(--danger)}}.table-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:6px var(--space-2)}.col-datetime{width:30%}.col-price{width:28%}.col-portfolio{width:42%}.col-icon{width:4%}.col-cash{width:23%}.col-xrp{width:16%}.col-value{width:25%}.col-chevron{width:4%}.portfolio-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-4)}.portfolio-total{text-align:center;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.portfolio-total-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.portfolio-total-value{font-size:28px;font-weight:var(--font-bold);color:var(--text-strong);margin-top:var(--space-1)}.allocation-bar{background:var(--border);height:4px;margin-bottom:var(--space-4);border-radius:2px;display:flex;overflow:hidden}.allocation-bar-xrp{background:var(--success-solid)}.allocation-bar-cash{background:var(--info-solid)}.allocation-row{justify-content:space-between;display:flex}.allocation-item{align-items:center;gap:10px;display:flex;&.right{flex-direction:row-reverse;& .allocation-info{text-align:right}}}.allocation-icon{border-radius:var(--radius-md);width:36px;height:36px;font-size:var(--text-lg);font-weight:var(--font-bold);justify-content:center;align-items:center;display:flex;&.xrp{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success);& svg{fill:var(--success)}}&.cash{background:color-mix(in srgb, var(--info) 12%, transparent);color:var(--info)}}.allocation-info-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase}.allocation-info-value{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-strong)}.allocation-info-sub{font-size:var(--text-xs);color:var(--text-muted)}.empty-message{text-align:center;color:var(--text-muted);padding:20px}td.empty-message{padding:20px 6px}