/* Member dashboard. Built only from lens.css tokens. */
.dh{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dh-t{font-size:28px;font-weight:700;letter-spacing:-.02em}
.dh p{margin-top:4px}
.dash{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s5);align-items:start}
@media (max-width:1080px){.dash{grid-template-columns:1fr}}
.dash-name{font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.dash-grades{white-space:nowrap}
.dash-grades span{display:inline-block;min-width:26px;text-align:center;font:700 12.5px var(--num)}
.dash-empty{padding:20px;display:flex;flex-direction:column;gap:12px;font-size:14px;color:var(--text2)}
.dash-empty b{color:var(--text)}
.dash-empty .tag:hover{background:var(--hover);text-decoration:none}
.since{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.since li{display:flex;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.since li:first-child{border-top:0}
.since a{color:var(--text)}
.since-dot{width:8px;height:8px;border-radius:999px;flex:none}
.since-dot.good{background:var(--gain)} .since-dot.bad{background:var(--loss)}
.card.flush>.card-h .seg{margin:-4px 0}
@media (max-width:760px){.dh-t{font-size:23px}.dash-grades{display:none}}
.dash-wl .tbl td a{color:var(--text)}
.dash-wl .tbl td a:hover{color:var(--gold-text);text-decoration:none}
.dash-wl th.dash-grades{letter-spacing:.02em}

/* Dashboard grid: twelve columns, rows of widgets that line up. */
.dgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s5);align-items:stretch}
.dgrid>.d8{grid-column:span 8}
.dgrid>.d4{grid-column:span 4}
@media (max-width:1180px){.dgrid>.d8,.dgrid>.d4{grid-column:span 12}.dgrid>.d4{grid-column:span 6}}
@media (max-width:760px){.dgrid{gap:var(--s4)}.dgrid>.d4{grid-column:span 12}}
.dgrid>.card{display:flex;flex-direction:column}
.dgrid .card-t{display:flex;align-items:center;gap:8px}
.dgrid .card-t svg{color:var(--gold-text);opacity:.9}
.d-pad{padding:16px 20px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.d-note{padding:10px 20px 14px;margin-top:auto}

/* Lists with a monogram, a name and a value. */
.d-list{list-style:none;margin:0;padding:4px 0}
.d-list li{display:flex;align-items:center;gap:12px;padding:9px 20px;border-top:1px solid var(--line)}
.d-list li:first-child{border-top:0}
.d-list a{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--text)}
.d-list a:hover{text-decoration:none}
.d-list a:hover b{color:var(--gold-text)}
.d-li-t{display:flex;flex-direction:column;min-width:0}
.d-li-t .faint{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.d-list .num{font-weight:600;white-space:nowrap}
.d-mv-bar{width:64px;height:6px;border-radius:6px;background:var(--line);overflow:hidden;flex:none}
.d-mv-bar i{display:block;height:100%;border-radius:6px}
.d-mv-bar i.up{background:linear-gradient(90deg,color-mix(in srgb,var(--gain) 40%,transparent),var(--gain))}
.d-mv-bar i.dn{background:linear-gradient(90deg,color-mix(in srgb,var(--loss) 40%,transparent),var(--loss))}

/* Market today. */
.d-idx{list-style:none;margin:0;padding:6px 0}
.d-idx li{display:grid;grid-template-columns:minmax(0,1fr) 120px 70px;align-items:center;gap:10px;padding:10px 20px;border-top:1px solid var(--line)}
.d-idx li:first-child{border-top:0}
.d-idx b{font-weight:650}
.d-idx-p{font-size:13px;color:var(--text2)}
.d-idx .num:last-child{text-align:right;font-weight:600}
.d-sec{padding:12px 20px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:7px;margin-top:auto}
.d-sec-h{display:flex;justify-content:space-between;font-size:12px;color:var(--text2);font-weight:600;letter-spacing:.02em;margin-bottom:2px}
.d-sec-r{display:grid;grid-template-columns:110px minmax(0,1fr) 56px;align-items:center;gap:10px;font-size:12.5px}
.d-sec-r .num{text-align:right;font-weight:600}
.d-sec-bar{position:relative;height:6px;background:var(--line);border-radius:6px}
.d-sec-bar::before{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--line3)}
.d-sec-bar i{position:absolute;top:0;bottom:0;border-radius:6px}
.d-sec-bar i.up{left:50%;background:var(--gain)}
.d-sec-bar i.dn{right:50%;background:var(--loss)}

/* Empty watchlist: picks with a Watch button. */
.d-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:760px){.d-picks{grid-template-columns:1fr 1fr}}
.d-pick{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:color-mix(in srgb,var(--raised) 60%,transparent);transition:border-color .15s}
.d-pick:hover{border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}
.d-pick a{display:flex;align-items:center;gap:8px;color:var(--text);min-width:0}
.d-pick a:hover{text-decoration:none}
.d-pick a .faint{font-size:12px;white-space:nowrap}
.d-pick .btn{flex:none}

/* Keep learning with a plate on top. */
.dlearn{overflow:hidden}
.dlearn .tile-art{height:92px}
.dlearn .card-foot{margin-top:auto}

.dgrid>.card>[id^="d-"]{flex:1;display:flex;flex-direction:column}
.dgrid>.card>[id^="d-"]>.tbl-wrap{flex:none}
.d-tips{list-style:none;margin:6px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.d-tips li{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--text2);line-height:1.45}
.d-tips svg{color:var(--gold-text);flex:none;margin-top:2px}
.d-tips b{color:var(--text);font-weight:600}
@media (max-width:760px){.d-tips{grid-template-columns:1fr}}
.d-pick .d-li-t .faint{font-size:11.5px}

/* Two stacks instead of rows, so no card is stretched into empty space. */
.dcols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.dcol{display:flex;flex-direction:column;gap:var(--s5);min-width:0}
.dpair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5);align-items:stretch}
@media (max-width:1180px){.dcols{grid-template-columns:1fr}}
@media (max-width:760px){.dcols,.dcol,.dpair{gap:var(--s4)}.dpair{grid-template-columns:1fr}}
.dcol .card{display:flex;flex-direction:column}
.dcol .card-t{display:flex;align-items:center;gap:8px}
.dcol .card-t svg{color:var(--gold-text);opacity:.9}
.dcol .card>[id^="d-"]{flex:1;display:flex;flex-direction:column}
.dcol .card>[id^="d-"]>.tbl-wrap{flex:none}
