/* ── GENERATED: 13px floor (326 rules that set <13px in today's CSS) ── */
html.ledger .dx-more>summary::after{font-size:13px}
html.ledger .sb-section-head{font-size:13px}
html.ledger .sb-section-caret{font-size:13px}
html.ledger .dc-stream-why{font-size:13px}
html.ledger .dc-stream-why i{font-size:13px}
html.ledger .ss-count{font-size:13px}
html.ledger .ss-new-badge{font-size:13px}
html.ledger .ss-cadence{font-size:13px}
html.ledger .cmp-best-tag{font-size:13px}
html.ledger .cmp-best-tag i{font-size:13px}
html.ledger .cmp-col-tally{font-size:13px}
html.ledger .cmp-row-hint{font-size:13px}
html.ledger .dc-proptype i{font-size:13px}
html.ledger .dc-investor-level i{font-size:13px}
html.ledger .arv-banded .arv-conf{font-size:13px}
html.ledger .arv-band-wide{font-size:13px}
html.ledger .arv-band-wide i{font-size:13px}
html.ledger .rsk-pf-level{font-size:13px}
html.ledger .rsk-pf-conf{font-size:13px}
html.ledger .rsk-pf-source{font-size:13px}
html.ledger .rsk-pf-dd{font-size:13px}
html.ledger .rsk-pf-footnote{font-size:13px}
html.ledger .drh-fc-chip{font-size:13px}
html.ledger .drh-fc-chip i{font-size:13px}
html.ledger .drh-fc-pct{font-size:13px}
html.ledger .dc-risk-count{font-size:13px}
html.ledger .dc-risk-count i{font-size:13px}
html.ledger .dc-spread-est{font-size:13px}
html.ledger .dc-metrics--lien .dc-metric-l{font-size:13px}
html.ledger .dc-deal-nature i{font-size:13px}
html.ledger .dc-btn-label{font-size:13px}
html.ledger .df-closes{font-size:13px}
html.ledger .card-flag{font-size:13px}
html.ledger .card-flag i{font-size:13px}
html.ledger .wl-status-select{font-size:13px}
html.ledger .drh-addr-label{font-size:13px}
html.ledger .drh-trust i{font-size:13px}
html.ledger .dp-imagery-source{font-size:13px}
html.ledger .dp-imagery-source i{font-size:13px}
html.ledger .dp-imagery-stale{font-size:13px}
html.ledger .dp-imagery-stale i{font-size:13px}
html.ledger .dp-imagery-open{font-size:13px}
html.ledger .dp-imagery-open i{font-size:13px}
html.ledger .dp-map-meta{font-size:13px}
html.ledger .dp-map-source i{font-size:13px}
html.ledger .dp-map-attr{font-size:13px}
html.ledger .dp-map-open i{font-size:13px}
@media (max-width: 720px){html.ledger .dp-imagery-source{font-size:13px}}
@media (max-width: 720px){html.ledger .dp-imagery-stale{font-size:13px}}
@media (max-width: 720px){html.ledger .dp-imagery-missing-sub{font-size:13px}}
@media (max-width: 720px){html.ledger .dp-map-meta{font-size:13px}}
html.ledger .drs-title{font-size:13px}
html.ledger .rsk-count{font-size:13px}
html.ledger .rsk-cleared-label{font-size:13px}
html.ledger .rsk-cleared-check{font-size:13px}
html.ledger .rsk-unknown-label{font-size:13px}
html.ledger .rsk-unknown-chip{font-size:13px}
html.ledger .upcoming-header-count{font-size:13px}
html.ledger .pfy-when{font-size:13px}
html.ledger .pfy-why{font-size:13px}
html.ledger .dcs-apn{font-size:13px}
html.ledger .upcoming-head{font-size:13px}
html.ledger .cal-count-pill{font-size:13px}
html.ledger .cal-weekday-row > div{font-size:13px}
html.ledger .cal-chip-more{font-size:13px}
html.ledger .ds-help-icon{font-size:13px}
html.ledger .ds-glossary-popover-title{font-size:13px}
html.ledger .meth-toc-label{font-size:13px}
html.ledger .drh-fullview i{font-size:13px}
html.ledger .flt-badge{font-size:13px}
html.ledger .dr-link-badge{font-size:13px}
html.ledger .dr-link-badge i{font-size:13px}
html.ledger .dr-link-stale{font-size:13px}
html.ledger .dr-link-stale i{font-size:13px}
html.ledger .ql-stale::after{font-size:13px}
html.ledger .ql-host{font-size:13px}
html.ledger .dr-why-label{font-size:13px}
html.ledger .dr-num-l{font-size:13px}
html.ledger .dr-mini-label{font-size:13px}
html.ledger .dr-decision-hint{font-size:13px}
html.ledger .deal-card--scan .dcs-price-l{font-size:13px}
html.ledger .deal-card--scan .dcs-flags .card-flag{font-size:13px}
html.ledger .deal-card--scan .dcs-course{font-size:13px}
html.ledger .deal-card--scan .dcs-course i{font-size:13px}
html.ledger .ts-chip{font-size:13px}
html.ledger .ts-chip i{font-size:13px}
@media (max-width: 480px){html.ledger .deal-card--scan .dcs-subline{font-size:13px}}
html.ledger .dr-thesis-list li::before{font-size:13px}
html.ledger .deal-table .dt-head td,html.ledger .deal-table .dt-head th{font-size:13px}
html.ledger .dt-verdict .dx-word i{font-size:13px}
html.ledger .dt-checks{font-size:13px}
html.ledger .qf-chip i{font-size:13px}
html.ledger .map-pin{font-size:13px}
html.ledger .dcs-star-label{font-size:13px}
html.ledger .cond-meter-l{font-size:13px}
html.ledger .redtl-seg{font-size:13px}
html.ledger .redtl-labels{font-size:13px}
html.ledger .owner-badge{font-size:13px}
html.ledger .comps-tbl tr:first-child td,html.ledger .comps-tbl tr:first-child th{font-size:13px}
html.ledger .wn-card li::before{font-size:13px}
html.ledger .owner-src{font-size:13px}
html.ledger .arv-conf-pill{font-size:13px}
html.ledger .arv-conf-basis{font-size:13px}
html.ledger .why-score .why-drivers-label{font-size:13px}
html.ledger .why-driver-ic{font-size:13px}
html.ledger .deal-card--scan .dcs-score .dcs-score-max{font-size:13px}
html.ledger .pfy-sub{font-size:13px}
html.ledger .pfy-where{font-size:13px}
html.ledger .notif-badge{font-size:13px}
html.ledger .notif-meta{font-size:13px}
html.ledger .notif-impact{font-size:13px}
html.ledger .notif-foot{font-size:13px}
html.ledger .dcs-inst{font-size:13px}
html.ledger .dcs-title{font-size:13px}
html.ledger .dcs-verdict .dcs-verdict-ev{font-size:13px}
html.ledger .df-lbl-n{font-size:13px}
html.ledger .df-lbl-s{font-size:13px}
html.ledger .df-small-h{font-size:13px}
html.ledger .df-small-c{font-size:13px}
html.ledger .df-small-n{font-size:13px}
html.ledger .df-tip.leaflet-tooltip em{font-size:13px}
html.ledger .df-jump button{font-size:13px}
html.ledger .df-credit{font-size:13px}
html.ledger .cov-leg-ends{font-size:13px}
html.ledger .df-streets button{font-size:13px}
html.ledger .df-tip .df-tip-id{font-size:13px}
html.ledger .wl-inactive-badge{font-size:13px}
html.ledger .ts-src i{font-size:13px}
html.ledger .pfy-nums .k{font-size:13px}
html.ledger .evidence-specific{font-size:13px}
html.ledger .evidence-shared{font-size:13px}
html.ledger .fx-nav .fx-plan-tag{font-size:13px}
html.ledger .fx-eyebrow{font-size:13px}
html.ledger .fx-sec{font-size:13px}
html.ledger .fx-sec .n{font-size:13px}
html.ledger .fx-chips .lbl{font-size:13px}
html.ledger .fx-chips button small{font-size:13px}
html.ledger .fx-row .k{font-size:13px}
html.ledger .fx-deal .rank{font-size:13px}
html.ledger .fx-metric b{font-size:13px}
html.ledger .fx-metric em{font-size:13px}
html.ledger .fx-fit span.c i{font-size:13px}
html.ledger .fx-deal-foot .note{font-size:13px}
html.ledger .fx-li .m{font-size:13px}
html.ledger .fx-disclaimer{font-size:13px}
@media (max-width: 640px){html.ledger .fx-stat span{font-size:13px}}
html.ledger .fx-journey li b{font-size:13px}
@media (max-width: 640px){html.ledger .fx-journey li{font-size:13px}}
@media (max-width: 480px){html.ledger .dr-decision-secondary{font-size:13px}}
html.ledger .ds-card-livecap{font-size:13px}
html.ledger .ds-anno-num{font-size:13px}
html.ledger .blog-card-meta{font-size:13px}
html.ledger .cat{font-size:13px}
html.ledger .state-pill{font-size:13px}
html.ledger .sidebar-ad-eyebrow{font-size:13px}
html.ledger .related-meta{font-size:13px}
html.ledger .lc-eyebrow{font-size:13px}
html.ledger .df-plan-pill{font-size:13px}
html.ledger .df-feat-list li.locked-pin .locked-upgrade-pin{font-size:13px}
html.ledger .acs-table th{font-size:13px}
html.ledger .acs-soon{font-size:13px}
html.ledger .acs-cta-link{font-size:13px}
html.ledger .sp-hero h1 .state-quality-badge{font-size:13px}
html.ledger .sp-rule-card .rule-label{font-size:13px}
html.ledger .dx-finding i{font-size:13px}
html.ledger .dx-evnote{font-size:13px}
html.ledger .dx-why--recourse{font-size:13px}
html.ledger .sp-stars span{font-size:13px}
html.ledger .sp-blog-meta{font-size:13px}
html.ledger .sp-blog-cat{font-size:13px}
html.ledger .ra-badge{font-size:13px}
html.ledger .ra-tally{font-size:13px}
html.ledger .cr-offer-tag{font-size:13px}
html.ledger .help-toc h3{font-size:13px}
html.ledger .kpi-card-label{font-size:13px}
html.ledger .kpi-table th{font-size:13px}
html.ledger .kpi-cta-label{font-size:13px}
html.ledger .chk{font-size:13px}
html.ledger .ribbon{font-size:13px}
html.ledger .row .m small{font-size:13px}
html.ledger footer{font-size:13px}
html.ledger .evidence-label{font-size:13px}
html.ledger .evidence-source{font-size:13px}
html.ledger .evidence-tier-badge{font-size:13px}
html.ledger .evidence-fact{font-size:13px}
html.ledger .evidence-disagreement-head{font-size:13px}
html.ledger .evidence-conflicts-head{font-size:13px}
html.ledger .evidence-conflict-sev{font-size:13px}
html.ledger .evidence-conflict-sources{font-size:13px}
html.ledger .conflict-src{font-size:13px}
html.ledger .conflict-val{font-size:13px}
html.ledger .conflict-vs{font-size:13px}
html.ledger .evidence-conflict-note{font-size:13px}
html.ledger .dr-survives .ds-cite{font-size:13px}
html.ledger .skiptrace-dnc>summary{font-size:13px}
html.ledger .skiptrace-dnc-body{font-size:13px}
html.ledger .why-survives .ds-tally{font-size:13px}
html.ledger .why-survives .ds-verdict{font-size:13px}
html.ledger .why-survives .ds-detail .ds-cite{font-size:13px}
html.ledger .why-survives .ds-footnote{font-size:13px}
html.ledger .dph-k{font-size:13px}
html.ledger .dph-m{font-size:13px}
html.ledger .dph-chip{font-size:13px}
html.ledger .dp-group-t::after{font-size:13px}
html.ledger .q7-floor{font-size:13px}
html.ledger .drh-verdict .dx-ev{font-size:13px}
html.ledger .ex-chip{font-size:13px}
html.ledger .le-panel .le-note{font-size:13px}
html.ledger .le-group-h{font-size:13px}
html.ledger .le-verify{font-size:13px}
html.ledger .le-blurb{font-size:13px}
html.ledger .le-meta{font-size:13px}
html.ledger .le-records-note{font-size:13px}
html.ledger .im-note{font-size:13px}
html.ledger .im-sub{font-size:13px}
html.ledger .im-comps-h{font-size:13px}
html.ledger .sig-chip{font-size:13px}
html.ledger .prop-legal .prop-l{font-size:13px}
html.ledger .sv-verify{font-size:13px}
html.ledger .sv-flag{font-size:13px}
html.ledger .td-hint{font-size:13px}
html.ledger .td-survives{font-size:13px}
html.ledger .td-caveat{font-size:13px}
html.ledger .td-cite{font-size:13px}
html.ledger .td-err{font-size:13px}
html.ledger .td-warn{font-size:13px}
html.ledger .td-busy{font-size:13px}
html.ledger .reg-passed{font-size:13px}
html.ledger .rail-fold>summary::after{font-size:13px}
html.ledger .skiptrace-balance{font-size:13px}
html.ledger .skiptrace-dnc{font-size:13px}
html.ledger .st-result-meta{font-size:13px}
html.ledger .st-pack-tag{font-size:13px}
html.ledger .st-modal-foot{font-size:13px}
html.ledger .deal-card .badge-strong{font-size:13px}
html.ledger .deal-card .verified-chip{font-size:13px}
html.ledger .dxf-chip i{font-size:13px}
html.ledger .deal-card .dx-word i{font-size:13px}
html.ledger .ex-fmt-btn{font-size:13px}
html.ledger .ex-preset-btn .small{font-size:13px}
html.ledger .ex-group-head{font-size:13px}
html.ledger .ex-group-toggle{font-size:13px}
html.ledger .pv-checks i{font-size:13px}
html.ledger .uw-head{font-size:13px}
html.ledger .uw-item .muted{font-size:13px}
html.ledger .uw-opt{font-size:13px}
html.ledger .uw-warn{font-size:13px}
html.ledger a.back{font-size:13px}
html.ledger .cpg-alert-fine{font-size:13px}
html.ledger .cpg-reg-item .k{font-size:13px}
html.ledger .df-vs-pop{font-size:13px}
html.ledger .df-vs-best{font-size:13px}
html.ledger .stat .label{font-size:13px}
html.ledger .stat .sub{font-size:13px}
html.ledger table.picks th{font-size:13px}
html.ledger .tier-badge{font-size:13px}
html.ledger .tract-acs{font-size:13px}
html.ledger .method-street{font-size:13px}
html.ledger .dfb-eyebrow{font-size:13px}
html.ledger .card-click::after{font-size:13px}
html.ledger .card-badge{font-size:13px}
html.ledger .lr{font-size:13px}
html.ledger .lc{font-size:13px}
html.ledger .lu{font-size:13px}
html.ledger .dc-inst{font-size:13px}
html.ledger .df .disc{font-size:13px}
@media (max-width:640px){html.ledger .df .meta{font-size:13px}}
html.ledger .ace-kicker{font-size:13px}
html.ledger .ace-stat .label{font-size:13px}
html.ledger .ace-facts th{font-size:13px}
html.ledger .ace-note{font-size:13px}
html.ledger .ac-card-code{font-size:13px}
html.ledger .ac-card-type{font-size:13px}
html.ledger .ad-audit{font-size:13px}
html.ledger .ad-meta{font-size:13px}
html.ledger .ad-pill{font-size:13px}
html.ledger .ad-type{font-size:13px}
html.ledger .copy-btn{font-size:13px}
html.ledger .si-card-code{font-size:13px}
html.ledger .si-card-type{font-size:13px}
html.ledger .si-card-live{font-size:13px}
html.ledger .si-card-soon{font-size:13px}
html.ledger .da-eyebrow{font-size:13px}
html.ledger .disc{font-size:13px}
html.ledger .ts-meta{font-size:13px}
html.ledger .ts-btn{font-size:13px}
html.ledger .ts-saved-badge{font-size:13px}
html.ledger .ts-auto-badge{font-size:13px}
html.ledger .ts-human-badge{font-size:13px}
html.ledger .wt-loom .lbl{font-size:13px}
html.ledger .dfo-badge{font-size:13px}
html.ledger .dftools-label{font-size:13px}
html.ledger .dftools-card .free{font-size:13px}
html.ledger .lp .eyebrow{font-size:13px}
html.ledger .lp .hero-pick label{font-size:13px}
html.ledger .lp .preview-label{font-size:13px}
html.ledger .lp .sp-listing-card .card-badge{font-size:13px}
html.ledger .lp .illus{font-size:13px}
html.ledger .lp .deal-top .lab{font-size:13px}
html.ledger .lp .chip .tag{font-size:13px}
html.ledger .lp .ring .of{font-size:13px}
html.ledger .lp .plan .most{font-size:13px}
html.ledger .lp .plan li i{font-size:13px}
@media (max-width:640px){html.ledger #cards .preview-label{font-size:13px}}
@media (max-width:640px){html.ledger #cards .deals-note{font-size:13px}}
html.ledger .tp-reviews .tp-rating span{font-size:13px}
html.ledger .tool .tag{font-size:13px}
html.ledger .foot{font-size:13px}
html.ledger .kicker{font-size:13px}
html.ledger .chip{font-size:13px}
html.ledger .bul li .ck{font-size:13px}
html.ledger .pcard .score{font-size:13px}
html.ledger .pcard .date{font-size:13px}
html.ledger .pill{font-size:13px}
html.ledger .stat .l{font-size:13px}
html.ledger .df-ask{font-size:13px}
html.ledger .pn-students-tag{font-size:13px}
html.ledger .pn-instructor-tag{font-size:13px}
html.ledger .pn-instructor-list li i{font-size:13px}
html.ledger .qz-eyebrow{font-size:13px}
html.ledger .qz-gate .badge{font-size:13px}
html.ledger .qz-disc{font-size:13px}
html.ledger .up-plan-tag{font-size:13px}
html.ledger .trust-sub{font-size:13px}
/* ── GENERATED: sentence case (128 rules that set ALL CAPS today) ── */
html.ledger .sb-section-head{text-transform:none;letter-spacing:0}
html.ledger .badge-live{text-transform:none;letter-spacing:0}
html.ledger .badge-pro{text-transform:none;letter-spacing:0}
html.ledger .cmp-best-tag{text-transform:none;letter-spacing:0}
html.ledger .more-deals-sep .mds-label{text-transform:none;letter-spacing:0}
html.ledger .dc-confidence{text-transform:none;letter-spacing:0}
html.ledger .dc-spread-est{text-transform:none;letter-spacing:0}
html.ledger .dc-metric-l{text-transform:none;letter-spacing:0}
html.ledger .drh-addr-label{text-transform:none;letter-spacing:0}
html.ledger .drs-title{text-transform:none;letter-spacing:0}
html.ledger .sb-tbl th{text-transform:none;letter-spacing:0}
html.ledger .rsk-cleared-label{text-transform:none;letter-spacing:0}
html.ledger .rsk-unknown-label{text-transform:none;letter-spacing:0}
html.ledger .prop-l{text-transform:none;letter-spacing:0}
html.ledger .rules-l{text-transform:none;letter-spacing:0}
html.ledger .summary-stat-l{text-transform:none;letter-spacing:0}
html.ledger .badge-sale-method{text-transform:none;letter-spacing:0}
html.ledger .upcoming-head{text-transform:none;letter-spacing:0}
html.ledger .cal-weekday-row > div{text-transform:none;letter-spacing:0}
html.ledger .ds-glossary-popover-title{text-transform:none;letter-spacing:0}
html.ledger .meth-toc-label{text-transform:none;letter-spacing:0}
html.ledger .ql-stale::after{text-transform:none;letter-spacing:0}
html.ledger .dr-why-label{text-transform:none;letter-spacing:0}
html.ledger .dr-num-l{text-transform:none;letter-spacing:0}
html.ledger .dr-mini-label{text-transform:none;letter-spacing:0}
html.ledger .deal-card--scan .dcs-price-l{text-transform:none;letter-spacing:0}
html.ledger .dr-sec-h{text-transform:none;letter-spacing:0}
html.ledger .dr-thesis-h{text-transform:none;letter-spacing:0}
html.ledger .deal-table .dt-head td,html.ledger .deal-table .dt-head th{text-transform:none;letter-spacing:0}
html.ledger .cond-meter-l{text-transform:none;letter-spacing:0}
html.ledger .comps-tbl tr:first-child td,html.ledger .comps-tbl tr:first-child th{text-transform:none;letter-spacing:0}
html.ledger .arv-conf-pill{text-transform:none;letter-spacing:0}
html.ledger .why-score .why-drivers-label{text-transform:none;letter-spacing:0}
html.ledger .pfy-where{text-transform:none;letter-spacing:0}
html.ledger .df-small-h{text-transform:none;letter-spacing:0}
html.ledger .verdict-pill{text-transform:none;letter-spacing:0}
html.ledger .fx-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .fx-sec{text-transform:none;letter-spacing:0}
html.ledger .fx-chips .lbl{text-transform:none;letter-spacing:0}
html.ledger .fx-row .k{text-transform:none;letter-spacing:0}
html.ledger .fx-deal .rank{text-transform:none;letter-spacing:0}
html.ledger .fx-metric b{text-transform:none;letter-spacing:0}
html.ledger .fx-brief-hero .t{text-transform:none;letter-spacing:0}
html.ledger .ds-section-label{text-transform:none;letter-spacing:0}
html.ledger .ds-hero-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .ds-price-card.featured::before{text-transform:none;letter-spacing:0}
html.ledger .ds-price-card.value-pick::before{text-transform:none;letter-spacing:0}
html.ledger .ds-price-card-name{text-transform:none;letter-spacing:0}
html.ledger .ds-footer-col h3,html.ledger .ds-footer-col h4{text-transform:none;letter-spacing:0}
html.ledger .ds-card-livecap{text-transform:none;letter-spacing:0}
html.ledger .tier-popular{text-transform:none;letter-spacing:0}
html.ledger .plan-badge{text-transform:none;letter-spacing:0}
html.ledger .info-label{text-transform:none;letter-spacing:0}
html.ledger .cat{text-transform:none;letter-spacing:0}
html.ledger .blog-article-cta .cta-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .sidebar-ad-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .lc-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .df-plan-pill{text-transform:none;letter-spacing:0}
html.ledger .df-section-title{text-transform:none;letter-spacing:0}
html.ledger .acs-table th{text-transform:none;letter-spacing:0}
html.ledger .sp-hero h1 .state-quality-badge{text-transform:none;letter-spacing:0}
html.ledger .sp-rule-card .rule-label{text-transform:none;letter-spacing:0}
html.ledger .sp-blog-cat{text-transform:none;letter-spacing:0}
html.ledger .cr-offer-tag{text-transform:none;letter-spacing:0}
html.ledger .help-toc h3{text-transform:none;letter-spacing:0}
html.ledger .kpi-card-label{text-transform:none;letter-spacing:0}
html.ledger .kpi-section h2{text-transform:none;letter-spacing:0}
html.ledger .kpi-table th{text-transform:none;letter-spacing:0}
html.ledger .kpi-cta-label{text-transform:none;letter-spacing:0}
html.ledger .ribbon{text-transform:none;letter-spacing:0}
html.ledger .row .m small{text-transform:none;letter-spacing:0}
html.ledger .rail-card h3{text-transform:none;letter-spacing:0}
html.ledger .evidence-panel .dr-section-head{text-transform:none;letter-spacing:0}
html.ledger .evidence-label{text-transform:none;letter-spacing:0}
html.ledger .evidence-tier-badge{text-transform:none;letter-spacing:0}
html.ledger .evidence-disagreement-head{text-transform:none;letter-spacing:0}
html.ledger .evidence-conflicts-head{text-transform:none;letter-spacing:0}
html.ledger .evidence-conflict-sev{text-transform:none;letter-spacing:0}
html.ledger .why-survives .ds-verdict{text-transform:none;letter-spacing:0}
html.ledger .dph-k{text-transform:none;letter-spacing:0}
html.ledger .dph-chip{text-transform:none;letter-spacing:0}
html.ledger .dph-h{text-transform:none;letter-spacing:0}
html.ledger .q7-floor{text-transform:none;letter-spacing:0}
html.ledger .le-group-h{text-transform:none;letter-spacing:0}
html.ledger .le-verify{text-transform:none;letter-spacing:0}
html.ledger .im-comps-h{text-transform:none;letter-spacing:0}
html.ledger .sv-flag{text-transform:none;letter-spacing:0}
html.ledger .err-mark{text-transform:none;letter-spacing:0}
html.ledger .ex-group-head{text-transform:none;letter-spacing:0}
html.ledger .ep-label{text-transform:none;letter-spacing:0}
html.ledger .ep-tier-badge{text-transform:none;letter-spacing:0}
html.ledger .uw-head{text-transform:none;letter-spacing:0}
html.ledger .mfa-status{text-transform:none;letter-spacing:0}
html.ledger .cpg-reg-item .k{text-transform:none;letter-spacing:0}
html.ledger .co-btn-badge{text-transform:none;letter-spacing:0}
html.ledger .df-vs-pop{text-transform:none;letter-spacing:0}
html.ledger .df-vs-best{text-transform:none;letter-spacing:0}
html.ledger .stat .label{text-transform:none;letter-spacing:0}
html.ledger table.picks th{text-transform:none;letter-spacing:0}
html.ledger .dfb-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .ace-kicker{text-transform:none;letter-spacing:0}
html.ledger .ace-facts th{text-transform:none;letter-spacing:0}
html.ledger .ad-pill{text-transform:none;letter-spacing:0}
html.ledger .ad-type{text-transform:none;letter-spacing:0}
html.ledger .da-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .wt-clicks strong{text-transform:none;letter-spacing:0}
html.ledger .dfo-badge{text-transform:none;letter-spacing:0}
html.ledger .gd-toc h3{text-transform:none;letter-spacing:0}
html.ledger .gd-color-pill{text-transform:none;letter-spacing:0}
html.ledger .dftools-label{text-transform:none;letter-spacing:0}
html.ledger .lp .eyebrow{text-transform:none;letter-spacing:0}
html.ledger .lp .hero-pick label{text-transform:none;letter-spacing:0}
html.ledger .lp .preview-label{text-transform:none;letter-spacing:0}
html.ledger .lp .illus{text-transform:none;letter-spacing:0}
html.ledger .lp .deal-top .lab{text-transform:none;letter-spacing:0}
html.ledger .lp .plan .most{text-transform:none;letter-spacing:0}
html.ledger .tool .tag{text-transform:none;letter-spacing:0}
html.ledger .kicker{text-transform:none;letter-spacing:0}
html.ledger .mc-kicker{text-transform:none;letter-spacing:0}
html.ledger .pill{text-transform:none;letter-spacing:0}
html.ledger .card h2{text-transform:none;letter-spacing:0}
html.ledger th{text-transform:none;letter-spacing:0}
html.ledger .pn-students-tag{text-transform:none;letter-spacing:0}
html.ledger .pn-instructor-tag{text-transform:none;letter-spacing:0}
html.ledger .qz-eyebrow{text-transform:none;letter-spacing:0}
html.ledger .qz-gate .badge{text-transform:none;letter-spacing:0}
html.ledger .up-plan-tag{text-transform:none;letter-spacing:0}
html.ledger .hot-now-title{text-transform:none;letter-spacing:0}
html.ledger [style*="uppercase"]{text-transform:none!important;letter-spacing:0!important}
/* ═══════════════════════════════════════════════════════════════════════
   LEDGER — DeedFlex visual system, Phase 1 (approved 2026-10-09, direction A)
   Loaded only when LEDGER_VISUALS=on (web/ledger_visuals.py). Every rule is
   scoped to html.ledger, so with the switch off this file does nothing.

   The idea in one line: separate things with SURFACE STEPS and SPACE, not
   outlines. Three warm-slate steps, almost no visible borders, one type
   scale with nothing customer-facing under 13px, and colour only where it
   means something:
     green  = brand / positive / approved      amber = caution, check first
     red    = real risk                         grey  = neutral / unknown
     Flexy  = the brand green family (no orange anywhere)
   ═══════════════════════════════════════════════════════════════════════ */

html.ledger{
  /* ── surfaces: page < nav < card < raised (popover/modal) ── */
  --lg-bg:#0C1013;        /* page */
  --lg-s1:#141A1E;        /* nav, cards, toolbar fields */
  --lg-s2:#1B2328;        /* hover, selected, secondary buttons */
  --lg-s3:#242E34;        /* popovers, modals, pressed */
  --lg-line:rgba(226,240,234,.07);   /* the only divider colour */
  --lg-line-2:rgba(226,240,234,.12); /* inputs, when an edge is needed */

  /* ── text ── */
  --lg-t1:#EEF2F0;  /* primary */
  --lg-t2:#B4BFBB;  /* secondary */
  --lg-t3:#8E9995;  /* muted / meta (4.9:1 on s1) */

  /* ── brand + meaning ── */
  --lg-brand:#3DD68C;  --lg-brand-2:#A6F0CB;  --lg-brand-ink:#08130E;
  --lg-brand-tint:rgba(61,214,140,.10);
  --lg-pos:#4CD991;  --lg-pos-tint:rgba(76,217,145,.10);
  --lg-cau:#E7B44C;  --lg-cau-tint:rgba(231,180,76,.10);
  --lg-risk:#EE6B5E; --lg-risk-tint:rgba(238,107,94,.10);
  --lg-info:#7FB2E5; --lg-info-tint:rgba(127,178,229,.10);
  --lg-flexy:#3DD68C; --lg-flexy-2:#A6F0CB;
  --lg-focus:#6BE3A8;

  /* ── type ── */
  --lg-sans:'Geist',-apple-system,'Segoe UI',system-ui,sans-serif;
  --lg-serif:'Source Serif 4',Georgia,serif;
  --lg-fs-page:32px;     /* page title, serif */
  --lg-fs-section:22px;  /* section title, serif */
  --lg-fs-card:17px;     /* card title */
  --lg-fs-value:26px;    /* large value */
  --lg-fs-number:20px;   /* primary number */
  --lg-fs-body:15px;     /* body */
  --lg-fs-label:14px;    /* label */
  --lg-fs-meta:13px;     /* meta + helper: the floor */

  /* ── space (4px base) ── */
  --lg-1:4px; --lg-2:8px; --lg-3:12px; --lg-4:16px; --lg-5:24px; --lg-6:32px; --lg-7:48px;

  /* ── radius + depth ── */
  --lg-r-sm:8px; --lg-r:12px; --lg-r-lg:16px; --lg-r-pill:999px;
  --lg-shadow-pop:0 12px 32px rgba(0,0,0,.40),0 2px 6px rgba(0,0,0,.25);
  --lg-ease:cubic-bezier(.2,.7,.2,1);

  /* ── remap the tokens the existing CSS already reads ── */
  --bg:var(--lg-bg); --bg2:var(--lg-s1); --bg3:var(--lg-s2); --bg4:var(--lg-s3);
  --surface:var(--lg-s1);
  --border:var(--lg-line); --border-light:var(--lg-line-2);
  --text:var(--lg-t1); --text2:var(--lg-t2); --text3:var(--lg-t3);
  --accent:var(--lg-brand); --accent-hover:#6BE3A8;
  --green:var(--lg-pos); --green-bg:var(--lg-pos-tint); --green-border:transparent;
  --yellow:var(--lg-cau); --yellow-bg:var(--lg-cau-tint); --yellow-border:transparent;
  --orange:var(--lg-cau); --orange-bg:var(--lg-cau-tint);   /* orange retired: caution only */
  --red:var(--lg-risk); --red-bg:var(--lg-risk-tint); --red-border:transparent;
  --blue:var(--lg-info); --blue-bg:var(--lg-info-tint);
  --purple:#B3B9E8; --purple-bg:rgba(179,185,232,.10);
  --teal:var(--lg-brand-2);
  --sans:var(--lg-sans); --mono:var(--lg-sans); --serif:var(--lg-serif);
  --radius:var(--lg-r); --radius-sm:var(--lg-r-sm);

  /* dx.css (verdict model) */
  --dx-ok:var(--lg-pos);  --dx-ok-bg:var(--lg-pos-tint);  --dx-ok-br:transparent;
  --dx-warn:var(--lg-cau);--dx-warn-bg:var(--lg-cau-tint);--dx-warn-br:transparent;
  --dx-bad:var(--lg-risk);--dx-bad-bg:var(--lg-risk-tint);--dx-bad-br:transparent;
  --dx-unk:#9AA5A1;       --dx-unk-bg:rgba(154,165,161,.10);--dx-unk-br:transparent;
  --dx-title:var(--lg-fs-page); --dx-section:var(--lg-fs-section);
  --dx-body:var(--lg-fs-body);  --dx-meta:var(--lg-fs-meta);
  --dx-radius:var(--lg-r-lg);

  color-scheme:dark;
  background:var(--lg-bg);
}

/* ── base ─────────────────────────────────────────────────────────────── */
html.ledger body{
  background:var(--lg-bg);color:var(--lg-t1);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"ss01" on;
}
html.ledger h1,html.ledger h2,html.ledger h3{letter-spacing:-.01em;text-wrap:balance}
html.ledger :is(td,th,.v,[class*="price"],[class*="-num"],[class*="bid"],[class*="value"],[class*="stat"]){font-variant-numeric:tabular-nums}
html.ledger ::selection{background:rgba(61,214,140,.28)}
html.ledger :focus-visible{outline:2px solid var(--lg-focus)!important;outline-offset:2px;border-radius:6px}
html.ledger a{text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){html.ledger *{transition:none!important;animation:none!important}}

/* ── page header ─────────────────────────────────────────────────────── */
html.ledger .page-head{margin-bottom:var(--lg-5)}
html.ledger .page-head h1{font-family:var(--lg-serif);font-size:var(--lg-fs-page);font-weight:600;line-height:1.15}
html.ledger .page-head h1 i{display:none}
html.ledger .page-desc{font-size:var(--lg-fs-body);color:var(--lg-t3);margin-top:6px}

/* ── sidebar: branded, quiet, one clear selected state ─────────────── */
html.ledger .sidebar{background:var(--lg-s1)!important;border-right:0!important;box-shadow:none}
html.ledger .sb-links{gap:2px}
html.ledger .sb-link{font-size:15px;font-weight:500;color:var(--lg-t2);border-radius:var(--lg-r-sm);padding:9px 12px;border:0!important}
html.ledger .sb-link i{color:var(--lg-t3);font-size:15px}
html.ledger .sb-link:hover{background:var(--lg-s2);color:var(--lg-t1)}
html.ledger .sb-link.active{background:var(--lg-s2)!important;color:var(--lg-t1)!important;font-weight:600;box-shadow:inset 2px 0 0 var(--lg-brand)!important}
html.ledger .sb-link.active i{color:var(--lg-brand)}
html.ledger .sb-section{margin-top:var(--lg-5)}
html.ledger .sb-section-head{font-size:13px!important;font-weight:500;text-transform:none!important;letter-spacing:0!important;color:var(--lg-t3)}
html.ledger .sb-stream{border-radius:var(--lg-r-sm);border:0}
html.ledger .sb-stream:hover{background:var(--lg-s2)}
html.ledger .sb-stream.active{background:var(--lg-s2);color:var(--lg-t1);box-shadow:inset 2px 0 0 var(--lg-brand)}
html.ledger .sb-stream i{color:var(--lg-t3)}
html.ledger .sb-stream-name{font-size:14px;font-weight:500}
html.ledger .sb-badge{background:transparent!important;color:var(--lg-t3)!important;border:0!important;font-size:13px;font-weight:500}
html.ledger .sb-bottom{border-top:0;background:var(--lg-s1)}
html.ledger .sb-avatar{background:var(--lg-s3)!important;color:var(--lg-t1)!important;border:0!important}
html.ledger .sb-uplan{color:var(--lg-t3)}
html.ledger .sb-scan-btn{box-shadow:none!important;transform:none!important}

/* ── buttons: one primary, everything else a quiet surface ─────────── */
html.ledger :is(.btn-primary,.sb-scan-btn,.primary:not(.tag)){
  background:var(--lg-brand)!important;color:var(--lg-brand-ink)!important;border:0!important;
  border-radius:var(--lg-r-sm);font-weight:600;box-shadow:none!important;transform:none!important}
html.ledger :is(.btn-primary,.sb-scan-btn,.primary:not(.tag)):hover{background:#5BE0A0!important}
html.ledger :is(.ex-btn,.vt-btn,.clear-btn,.cal-nav-btn,.btn-secondary,.btn-ghost,.btn-outline,button.secondary){
  background:var(--lg-s2);border:0!important;color:var(--lg-t1);border-radius:var(--lg-r-sm);box-shadow:none}
html.ledger :is(.ex-btn,.vt-btn,.clear-btn,.cal-nav-btn,.btn-secondary,.btn-ghost,.btn-outline):hover{background:var(--lg-s3)}
html.ledger :is(.vt-btn.active,.vt-btn[aria-pressed="true"]){background:var(--lg-s3);color:var(--lg-t1);box-shadow:inset 0 -2px 0 var(--lg-brand)}
html.ledger button:active{transform:scale(.98)}

/* ── fields: filled, not outlined ──────────────────────────────────── */
html.ledger :is(input[type="text"],input[type="search"],input[type="email"],input[type="number"],input:not([type]),select,textarea){
  background-color:var(--lg-s1);border:1px solid transparent!important;border-radius:var(--lg-r-sm);
  color:var(--lg-t1);font-family:var(--lg-sans);font-size:15px}
html.ledger :is(input,select,textarea):hover{border-color:var(--lg-line-2)!important}
html.ledger :is(input,select,textarea):focus{border-color:var(--lg-brand)!important;box-shadow:0 0 0 3px rgba(61,214,140,.16)!important;outline:0}
html.ledger ::placeholder{color:var(--lg-t3)}

/* ── quick views: text tabs, not a row of outlined pills ───────────── */
html.ledger .qf-chip{background:transparent!important;border:0!important;border-radius:0;
  color:var(--lg-t2);font-size:15px;font-weight:500;padding:8px 2px;margin-right:14px;box-shadow:none}
html.ledger .qf-chip:hover{color:var(--lg-t1)}
html.ledger .qf-chip.active{color:var(--lg-t1)!important;box-shadow:inset 0 -2px 0 var(--lg-brand)!important;background:transparent!important}
html.ledger .qf-chip i{display:none}
html.ledger .filter-row-bottom{border-top:0}

/* ── generic panels: surface, not outline ──────────────────────────── */
html.ledger :is(.panel,.card,.stat-card,.empty-state,.welcome-state,.notif-panel,.wl-bulk-bar,.settings-card,.acct-card,.account-card,.section-card,.plan-card,.pricing-card,.fx-card){
  border-color:transparent!important;background-color:var(--lg-s1);border-radius:var(--lg-r-lg)}
html.ledger .tag{border:0!important;border-radius:6px;font-weight:500}
html.ledger .more-deals-sep .mds-label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--lg-t2)}

/* ── popovers + modals: the only raised layer ──────────────────────── */
html.ledger :is(.modal,.modal-content,.dropdown-menu,.popover,.ex-panel,[role="dialog"],[role="menu"]){
  background:var(--lg-s3)!important;border:0!important;border-radius:var(--lg-r-lg);box-shadow:var(--lg-shadow-pop)!important}

/* ═══ CARDS ═══════════════════════════════════════════════════════════
   One surface, no outline. Hierarchy from type: verdict word → address
   → two big numbers → one reason → when + Watch. Hover lifts the surface
   one step instead of glowing.                                          */
html.ledger :is(#deal-grid,#more-deal-grid,#pfy-grid).card-grid{gap:18px}
html.ledger .deal-card{
  background:var(--lg-s1)!important;border:0!important;border-radius:var(--lg-r-lg)!important;
  padding:20px 22px 16px!important;box-shadow:none!important;transform:none!important;
  transition:background-color .12s var(--lg-ease)}
html.ledger .deal-card:hover{background:var(--lg-s2)!important;box-shadow:none!important;transform:none!important}
html.ledger .dx-card{gap:10px}
html.ledger .dx-verdict{border-bottom:0;padding-bottom:0;margin-bottom:2px}
html.ledger .dx-word{font-size:14px;font-weight:600;letter-spacing:0;gap:6px}
html.ledger .dx-word i{font-size:13px}
html.ledger .dx-ev{font-size:13px;color:var(--lg-t3)}
html.ledger .dx-bar{width:44px;height:3px;background:rgba(226,240,234,.10)}
html.ledger .dx-why{font-size:14px;color:var(--lg-t2);margin:0;line-height:1.45}
html.ledger .dx-addr{font-size:var(--lg-fs-card);font-weight:600;line-height:1.3;color:var(--lg-t1)}
html.ledger .dx-sub{font-size:13.5px;color:var(--lg-t3)}
html.ledger .dx-figs{margin-top:8px;justify-content:flex-start;gap:32px}
html.ledger .dx-fig .k{font-size:13px;color:var(--lg-t3);font-weight:400}
html.ledger .dx-fig .v{font-size:var(--lg-fs-value);font-weight:600;letter-spacing:-.015em;line-height:1.15}
html.ledger .dx-fig--right .v{color:var(--lg-t2);font-weight:500}
html.ledger .dx-v-unknown{color:var(--lg-t3)!important;font-size:18px!important;font-weight:500!important}
html.ledger .dx-foot{margin-top:10px;padding-top:12px;border-top:1px solid var(--lg-line)}
html.ledger .dx-when{font-size:13.5px}
html.ledger .dx-when b{font-weight:500;color:var(--lg-t2)}
html.ledger .dx-chip,html.ledger .ts-chip{border-color:transparent!important;font-size:13px}
html.ledger .ts-src{background:transparent!important;border:0!important;padding:0!important;color:var(--lg-t3)!important;font-size:13px}
html.ledger .deal-card :is(.dcs-act,.card-act,.wl-btn,[class*="watch"]){border:0!important;background:var(--lg-s2);border-radius:var(--lg-r-sm);color:var(--lg-t1)}
html.ledger .deal-card:hover :is(.dcs-act,.card-act,.wl-btn,[class*="watch"]){background:var(--lg-s3)}

/* verdict colours: word only, no filled boxes */
html.ledger .dx-positive .dx-word{color:var(--lg-pos)}
html.ledger .dx-caution .dx-word{color:var(--lg-cau)}
html.ledger .dx-negative .dx-word{color:var(--lg-risk)}
html.ledger .dx-unknown .dx-word{color:#9AA5A1}

/* skeletons */
html.ledger :is(.skeleton-card){background:var(--lg-s1);border:0}
html.ledger :is(.sk,.sk-line,.sk-img){background:var(--lg-s2)}

/* ═══ PARCEL OUTLINE ══════════════════════════════════════════════════
   .lg-parcel draws a lot outline on a faint plat grid. With a real shape:
     <span class="lg-parcel"><svg viewBox="0 0 100 70"><path d="…"/></svg></span>
   Without one: <span class="lg-parcel lg-parcel--none"></span> draws the
   plat grid alone with a dashed lot, which reads as "shape not on file"
   rather than a broken image.                                            */
html.ledger .lg-parcel{display:inline-grid;place-items:center;flex:none;width:72px;height:52px;border-radius:var(--lg-r-sm);
  background-color:var(--lg-s2);
  background-image:linear-gradient(rgba(166,240,203,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(166,240,203,.07) 1px,transparent 1px);
  background-size:12px 12px;background-position:-1px -1px}
html.ledger .lg-parcel svg{width:84%;height:84%;overflow:visible}
html.ledger .lg-parcel path{fill:rgba(61,214,140,.12);stroke:var(--lg-brand-2);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
html.ledger .lg-parcel--none::after{content:"";width:46%;height:52%;border:1.5px dashed rgba(166,240,203,.35);border-radius:3px}
html.ledger .lg-parcel--lg{width:120px;height:86px;border-radius:var(--lg-r)}

/* ═══ FLEXY: the analyst inside DeedFlex ════════════════════════════════
   Same green family, the Folded Deed mark plus a spark. No robot, no orange. */
html.ledger [class*="flexy"]:is(.strip,.banner,.card,.panel,[class*="-strip"],[class*="-banner"],[class*="-card"]){
  border-color:transparent!important;
  background:linear-gradient(90deg,rgba(61,214,140,.08),rgba(61,214,140,0) 70%),var(--lg-s1)!important}
html.ledger [class*="flexy"] :is(.badge,.pill,.chip,.tag){border:0!important}

/* ═══ OUTLINES OFF, BY PATTERN ═══════════════════════════════════════════
   Measured 2026-10-09: after the token remap, the outlines still visible
   were blocks that hard-code their own border (cards, FAQ items, steps,
   banners, badges). Grouping comes from their fill + spacing instead.    */
html.ledger :is([class*="card"],[class*="-item"],[class*="feature"],[class*="-step"],[class*="banner"],[class*="-band"],
  [class*="-context"],[class*="-note"],[class*="-proof"],[class*="faq"],[class*="badge"],[class*="pill"],[class*="-tag"],
  [class*="chip"],[class*="eyebrow"],[class*="-link"],[class*="dfb"],[class*="-player"],[class*="-foot"]
  ):not(input):not(select):not(textarea):not(.dx-foot){border-color:transparent!important}
html.ledger :is([class*="faq-item"],[class*="-step"],[class*="feature"],[class*="tp-card"],[class*="rule-card"],[class*="proof-card"],[class*="vs-card"],[class*="actual-card"],[class*="dftools-card"],.sp-context){
  background-color:var(--lg-s1);border-radius:var(--lg-r-lg)}
html.ledger :is(.sp-listing-card){background:var(--lg-s1)!important;border-radius:var(--lg-r-lg)!important}
html.ledger :is(.sp-listing-card):hover{background:var(--lg-s2)!important}
/* featured / selected plan: one brand line on top, not a glowing outline */
html.ledger :is(.featured,.value-pick):is([class*="card"]){background:var(--lg-s2)!important;box-shadow:inset 0 3px 0 var(--lg-brand)!important}
/* status words: tinted fill, no outline, normal case */
html.ledger :is([class*="badge"],[class*="eyebrow"],.verdict-pill,.dc-proptype,[class*="dcs-"]){text-transform:none!important;letter-spacing:0!important}
html.ledger :is(.coverage-banner){background:var(--lg-cau-tint)!important;border-radius:var(--lg-r)}
html.ledger :is(.sp-cta-band,.dfb){background:linear-gradient(90deg,rgba(61,214,140,.08),rgba(61,214,140,0) 70%),var(--lg-s1)!important;border-radius:var(--lg-r-lg)}
html.ledger :is(.sp-state-link,.sp-county-tag){background:var(--lg-s1);border-radius:var(--lg-r-sm)}
html.ledger .sp-state-link.current{background:var(--lg-s2);color:var(--lg-t1);box-shadow:inset 0 -2px 0 var(--lg-brand)}
html.ledger :is(.ds-btn-lg.secondary,a.secondary,button.secondary){background:var(--lg-s2)!important}

/* ═══ FLEXY CHAT WIDGET (built by flexy-chat.js) ═══ */
html.ledger #flexy-panel{background:var(--lg-s1)!important;border:0!important;border-radius:var(--lg-r-lg)!important;box-shadow:var(--lg-shadow-pop)!important}
html.ledger #flexy-head{background:var(--lg-s2)!important;border:0!important}
html.ledger #flexy-head .s{font-size:13px;color:var(--lg-t3)}
html.ledger #flexy-foot{border-top:0!important;background:var(--lg-s1)!important}
html.ledger #flexy-in{background:var(--lg-s2)!important;border:0!important;font-size:15px}
html.ledger #flexy-send{background:var(--lg-brand)!important;color:var(--lg-brand-ink)!important;border:0!important;border-radius:var(--lg-r-sm)}
html.ledger #flexy-panel .note{font-size:13px;color:var(--lg-t3);border:0!important}

/* ═══ PASS 2 (measured on logged-in pages, 2026-10-09) ═══════════════════ */
/* board: strips + toolbar are surfaces, fields inside them step up once */
html.ledger .card-grid{align-items:start}
html.ledger :is(#fy-strip,.fy-strip){border:0!important;border-radius:var(--lg-r-lg)!important;
  background:linear-gradient(90deg,rgba(61,214,140,.10),rgba(61,214,140,0) 65%),var(--lg-s1)!important}
html.ledger :is(#upcoming-auctions,.upcoming-widget){border:0!important;background:var(--lg-s1)!important;border-radius:var(--lg-r-lg)!important}
html.ledger :is(#filters,.filters){border:0!important;background:var(--lg-s1)!important;border-radius:var(--lg-r-lg)!important}
html.ledger :is(#filters,.filters) :is(input,select){background-color:var(--lg-s2)!important}
html.ledger :is(#view-toggle,.view-toggle){border:0!important;background:var(--lg-s2)!important;border-radius:var(--lg-r-sm)}
html.ledger :is(#toast,.toast){border:0!important;background:var(--lg-s3)!important;box-shadow:var(--lg-shadow-pop)!important}

/* For You / setup (flexy.css components) */
html.ledger :is(.fx-card,.fx-deal,.fx-up,.fx-plan){border:0!important;box-shadow:none!important;border-radius:var(--lg-r-lg)!important;background:var(--lg-s1)!important}
html.ledger .fx-deal.feature{background:linear-gradient(180deg,rgba(61,214,140,.06),rgba(61,214,140,0) 40%),var(--lg-s1)!important;box-shadow:inset 0 3px 0 var(--lg-brand)!important}
html.ledger .fx-up{background:linear-gradient(180deg,rgba(61,214,140,.08),rgba(61,214,140,0) 55%),var(--lg-s1)!important}
html.ledger .fx-plan.ready{box-shadow:inset 0 3px 0 var(--lg-brand)!important}
html.ledger .fx-metric{border:0!important;background:var(--lg-s2)!important;border-radius:var(--lg-r)!important}
html.ledger .fx-metric *{text-transform:none!important;letter-spacing:0!important}
html.ledger .fx-metric b{font-size:13px;font-weight:500;color:var(--lg-t3)}
html.ledger .fx-metric span{font-size:20px;font-weight:600;letter-spacing:-.01em}
html.ledger .fx-metric em{font-size:13px}
html.ledger :is(.fx-pills,.fx-chips) :is(span,button,.c){border:0!important;background:var(--lg-s1)!important;border-radius:var(--lg-r-sm)!important}
html.ledger .fx-chips button:hover{background:var(--lg-s2)!important}
html.ledger .fx-btn{border:0!important;background:var(--lg-s2)!important;border-radius:var(--lg-r-sm)!important}
html.ledger .fx-btn:hover{background:var(--lg-s3)!important}
html.ledger .fx-btn.primary{background:var(--lg-brand)!important;color:var(--lg-brand-ink)!important}
html.ledger :is(.fx-eyebrow,.fx-chips .lbl,[class*="kicker"]){text-transform:none!important;letter-spacing:0!important;font-size:14px!important;font-weight:600!important}
html.ledger .fx-watched-note{border:0!important}
html.ledger .fx-input input{background-color:var(--lg-s2)!important;border:1px solid transparent!important}

/* deal page: groups are surfaces; facts are a filled band, not boxes */
html.ledger :is(.dp-group,.dr-section,.ds-table,.td-box,.dc-narratives,.dp-imagery,.evidence-panel){border:0!important;background:var(--lg-s1)!important;border-radius:var(--lg-r-lg)!important}
html.ledger :is(.dph-fact,.evidence-cell,.rsk-pf-row,.ds-row){border:0!important;background:var(--lg-s2)!important;border-radius:var(--lg-r)!important}
html.ledger :is(.ql,.le-records-btn,.deal-save-btn,.drh-nav,.dph-src,.dp-imagery-open,.dp-imagery-source,.evidence-fact,.ds-help-icon){border:0!important}
html.ledger :is(.ql,.le-records-btn,.drh-nav){background:var(--lg-s2)!important;border-radius:var(--lg-r-sm)!important}
html.ledger .deal-save-btn{background:var(--lg-brand)!important;color:var(--lg-brand-ink)!important;border-radius:var(--lg-r-sm)!important;font-weight:600}
html.ledger :is(.prop-detail,.prop-detail strong,#explain-meta,.evidence-specific-scope,.muted){font-size:13px!important}

/* toolbar keeps one row at 1366 */
html.ledger :is(#filters,.filters) :is(button,.ex-btn,a.ex-btn){font-size:14px;padding-inline:12px}
html.ledger :is(#filters,.filters) :is(input,select){font-size:14.5px}

/* text buttons stay links */
html.ledger .link-btn{background:transparent!important;border:0!important;color:var(--lg-brand)!important;padding:0 2px!important;text-decoration:underline;text-underline-offset:3px}
/* primary button contents follow the button's ink */
html.ledger .deal-save-btn *{color:inherit!important}
html.ledger .deal-save-btn[aria-pressed="true"]{background:var(--lg-s2)!important;color:var(--lg-t1)!important}
/* phone header: the mark before the wordmark */
html.ledger #topbar{background:var(--lg-s1)!important;border-bottom:0!important}

/* inline style="font-size:<13px" attributes in templates */
html.ledger :is([style*="font-size:10"],[style*="font-size: 10"],[style*="font-size:11"],[style*="font-size: 11"],[style*="font-size:12"],[style*="font-size: 12"],[style*="font-size:.7"],[style*="font-size:.8rem"],[style*="font-size:0.7"],[style*="font-size:0.8rem"]){font-size:13px!important}

/* watchlist reuses .card-grid: keep its column count, note on its own row */
html.ledger .wl-card{flex-wrap:wrap;border:0!important;background:var(--lg-s1)!important;border-radius:var(--lg-r-lg)!important}
html.ledger .wl-card:hover{background:var(--lg-s2)!important;transform:none!important}
html.ledger .wl-card-notes{flex-basis:100%}

/* cards size to their content (1fr rows made every card as tall as the tallest) */
html.ledger :is(#deal-grid,#more-deal-grid).card-grid{grid-auto-rows:auto!important}
html.ledger #deal-grid .deal-card,html.ledger #more-deal-grid .deal-card{height:auto!important}

/* ═══ LOGO: DeedFlex keeps its established logo (2026-10-09) ═══════════════
   Ledger restyles the product, never the brand mark. No rule in this file may
   replace, resize or re-letter a logo, favicon, app icon, share image or the
   Flexy avatar. The "DeedFlex" wordmark beside the For You / setup logo used
   the page sans before Ledger remapped --sans, so it is pinned back here. */
html.ledger .fx-brand{font-family:'Plus Jakarta Sans',-apple-system,sans-serif}
html.ledger :is(.ds-logo-text,.sb-name,.mob-title,.fx-brand){color:rgb(240,243,246)}
html.ledger .sb-tagline{font-family:'Plus Jakarta Sans',-apple-system,sans-serif;color:rgb(157,168,184)}

/* ═══ LOGO PRESENCE (2026-10-10) ════════════════════════════════════════
   Same approved artwork, better presentation. logo-mark.png is now framed
   so the mark fills ~92% of its square (it used to fill 2%, which is why it
   read as a speck). These rules only size and space it; nothing redraws it.
   object-fit:cover trims the transparent rows above/below the 2:1 mark. */
html.ledger .sb-logo{flex-direction:column;align-items:flex-start;gap:4px;margin:6px 4px 26px 6px}
html.ledger .sb-logo-img{width:68px!important;height:36px!important;object-fit:cover;margin:0 0 4px -3px}
html.ledger .sb-name{font-size:23px;line-height:1.15}
html.ledger .sb-tagline{margin-top:1px;letter-spacing:.01em}
/* public nav + footer lockup (template sets height:34px;width:auto inline) */
html.ledger img[src*="/static/img/logo-mark.png"][style*="height:34px"]{width:52px!important;height:28px!important;object-fit:cover}
/* phone app header: the approved mark before the wordmark */
html.ledger .mob-title{display:inline-flex;align-items:center;gap:9px}
html.ledger .mob-title::before{content:"";flex:none;width:40px;height:22px;background:url(/static/img/logo-mark.png) center/44px auto no-repeat}

/* ═══════════════════════════════════════════════════════════════════════
   PHASE 2 — Deal Board, cards, navigation (2026-10-09)
   ═══════════════════════════════════════════════════════════════════════ */

/* board reads top-down: title, inventory line, one Flexy note, views, tools */
html.ledger #pg-deals.active{display:flex;flex-direction:column;gap:14px}
html.ledger #pg-deals.active>*{margin-top:0!important;margin-bottom:0!important}
html.ledger #pg-deals>.hidden{display:none!important}
html.ledger #deals-h1{position:static!important;width:auto!important;height:auto!important;clip:auto!important;clip-path:none!important;
  overflow:visible!important;white-space:normal!important;margin:0!important;order:-3;
  font-family:var(--lg-serif);font-size:var(--lg-fs-page);font-weight:600;line-height:1.15;color:var(--lg-t1)}
html.ledger #summary-bar{order:-2;font-size:15px;color:var(--lg-t3);margin-top:-6px!important}
html.ledger #summary-bar i{display:none}
html.ledger #summary-bar b,html.ledger #summary-bar strong{color:var(--lg-t2);font-weight:600}

/* one calm Flexy note instead of a banner */
html.ledger #fy-strip{display:flex;align-items:center;gap:12px;padding:12px 16px!important}
html.ledger #fy-strip .fy-strip-text{flex:1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:15px;color:var(--lg-t2)}
html.ledger #fy-strip .fy-strip-text b,html.ledger #fy-strip .fy-strip-text strong{color:var(--lg-t1)}
html.ledger #fy-strip .fy-strip-btn{margin-left:auto;background:transparent!important;color:var(--lg-brand)!important;padding:0!important;
  font-size:15px;font-weight:600;box-shadow:none!important;border:0!important}
html.ledger #fy-strip .fy-strip-btn:hover{text-decoration:underline;text-underline-offset:3px}
/* Flexy setup invite: brand family, not #FF5B1F orange */
html.ledger #flexy-invite{background:linear-gradient(90deg,rgba(61,214,140,.10),rgba(61,214,140,0) 65%),var(--lg-s1)!important;border:0!important;border-radius:var(--lg-r-lg)!important}
html.ledger #flexy-invite a[href^="/setup"]{background:var(--lg-brand)!important;color:var(--lg-brand-ink)!important}
html.ledger #flexy-invite button{border:0!important;background:var(--lg-s2)!important}
html.ledger :is(#intent-bar,#new-since-bar,#trial-banner){border:0!important;border-radius:var(--lg-r-lg)!important;background:var(--lg-s1)!important}
html.ledger #intent-bar button{border:0!important;background:var(--lg-s2)!important}

/* quick views: a quiet tab row; label dropped (the tabs say what they are) */
html.ledger #quick-filters{gap:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--lg-line);padding-bottom:0}
html.ledger #quick-filters::-webkit-scrollbar{display:none}
html.ledger #quick-filters .qf-label{display:none}
html.ledger #quick-filters .qf-chip{white-space:nowrap;margin-right:22px;padding:8px 0 10px}

/* upcoming auctions: one slim line */
html.ledger #upcoming-auctions{background:transparent!important;padding:0!important}
html.ledger #upcoming-auctions .upcoming-header{padding:6px 0!important;font-size:14.5px;color:var(--lg-t2)}
html.ledger #upcoming-auctions .upcoming-header-label{font-weight:500}
html.ledger #upcoming-auctions .upcoming-header i.fa-calendar-days,html.ledger #upcoming-auctions .upcoming-header .fa-solid:first-child{color:var(--lg-t3)}

/* toolbar: one surface, two rows max on desktop (fields / count+actions) */
html.ledger #filters{padding:14px!important}
html.ledger #filters .dxf-primary{flex-wrap:nowrap;gap:8px}
html.ledger #filters #f-q{flex:1 1 auto;min-width:200px}
html.ledger #filters .dxf-status{flex-wrap:nowrap;align-items:center;gap:14px;margin-top:10px!important;padding-top:10px!important;border-top:1px solid var(--lg-line)!important}
html.ledger #filters .deal-count{font-size:15px;font-weight:500;white-space:nowrap}
html.ledger #filters .deal-count .sort-indicator{display:none}
html.ledger #filters .screened-note{font-size:14px;color:var(--lg-t3);white-space:nowrap}
html.ledger #filters .dxf-util{margin-left:auto;display:flex;gap:6px;flex-wrap:nowrap}
html.ledger #filters .dxf-util .clear-btn{font-size:14px!important;padding:7px 12px!important;white-space:nowrap}

/* Picked for you: same anatomy as the deal card, compact */
html.ledger #picked-for-you .pfy-top{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
html.ledger #picked-for-you .pfy-title{font-family:var(--lg-serif);font-size:var(--lg-fs-section);font-weight:600;color:var(--lg-t1)}
html.ledger #picked-for-you .pfy-sub{font-size:14px;color:var(--lg-t3)}
html.ledger #picked-for-you .pfy-row{gap:14px}
html.ledger .pfy-card{background:var(--lg-s1)!important;border:0!important;border-radius:var(--lg-r-lg)!important;padding:16px 18px!important;
  text-align:left;box-shadow:none!important;transform:none!important;transition:background-color .12s var(--lg-ease)}
html.ledger .pfy-card:hover{background:var(--lg-s2)!important}
html.ledger .pfy-where{font-size:13.5px;color:var(--lg-t3)}
html.ledger .pfy-head{font-size:16px;font-weight:600;line-height:1.3;color:var(--lg-t1);margin-top:4px}
html.ledger .pfy-nums{display:flex;align-items:baseline;gap:18px;margin-top:12px}
html.ledger .pfy-nums .k{display:block;font-size:13px;color:var(--lg-t3);font-weight:400}
html.ledger .pfy-bid{font-size:22px;font-weight:600;color:var(--lg-t1)!important;letter-spacing:-.01em}
html.ledger .pfy-val{font-size:22px;font-weight:500;color:var(--lg-t2)!important;letter-spacing:-.01em}
html.ledger :is(.pfy-bid,.pfy-val).is-unknown{font-size:16px;color:var(--lg-t3)!important}
html.ledger .pfy-when{margin-left:auto;font-size:13.5px;color:var(--lg-t3)}
html.ledger .pfy-why{font-size:14px;color:var(--lg-t2);margin-top:10px;line-height:1.45}

/* lot drawn to proportion (only with real frontage x depth): one quiet line */
html.ledger .lg-lot{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:-4px}
html.ledger .lg-lot svg{width:26px;height:20px;flex:none}
html.ledger .lg-lot rect{fill:rgba(61,214,140,.14);stroke:var(--lg-brand-2);stroke-width:1.4;vector-effect:non-scaling-stroke}
html.ledger .lg-lot-dims{font-size:13.5px;color:var(--lg-t3);font-variant-numeric:tabular-nums}

/* deal grid: 3 columns at 1366 again (340px min + 18px gap overflowed 1050px) */
html.ledger :is(#deal-grid,#more-deal-grid).card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}

/* top-of-board fixes */
html.ledger #fy-strip .fy-strip-text{justify-content:flex-start;text-align:left}
html.ledger #fy-strip .fy-strip-text>*{flex:0 1 auto}
html.ledger #fy-strip .fy-strip-text br{display:none}
html.ledger #upcoming-auctions,html.ledger #upcoming-auctions .upcoming-header{border:0!important;box-shadow:none!important}
html.ledger #filters #btn-legend{white-space:nowrap;font-size:14px}

/* ── phone: first deal within one screen, tools in a drawer ── */
@media (max-width:768px){
  html.ledger #pg-deals.active{gap:12px}
  html.ledger #deals-h1{font-size:26px}
  html.ledger #summary-bar{font-size:14px}
  html.ledger #fy-strip{padding:10px 12px!important}
  html.ledger #fy-strip .fy-strip-text{font-size:14px;gap:6px}
  html.ledger #fy-strip .fy-strip-text>span{flex-basis:100%}
  html.ledger #fy-strip .fy-strip-btn{margin-left:0}
  html.ledger #filters{padding:10px!important}
  html.ledger #filters:not(.lg-open) :is(#f-state,#f-sort,#view-toggle,#btn-clear-filters,.dxf-util,#btn-legend){display:none!important}
  html.ledger #filters .dxf-primary{flex-wrap:wrap}
  html.ledger #filters #f-q{min-width:0;flex:1 1 60%}
  html.ledger #filters #btn-toggle-filters{flex:none}
  html.ledger #filters.lg-open :is(#f-state,#f-sort){flex:1 1 45%}
  html.ledger #filters .dxf-status{flex-wrap:wrap;gap:6px 10px}
  html.ledger #filters .dxf-util{margin-left:0}
  html.ledger #picked-for-you .pfy-row{grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;display:grid}
  html.ledger .pfy-card{scroll-snap-align:start}
  html.ledger #upcoming-auctions .upcoming-header{font-size:14px}
  html.ledger #picked-for-you .pfy-title{font-size:20px}
  html.ledger #picked-for-you .pfy-sub{display:none}
  html.ledger #summary-bar{display:none}
  html.ledger #filters .dxf-status{padding-top:8px!important;margin-top:8px!important}
  html.ledger #filters .deal-count{font-size:14px}
  html.ledger #filters .screened-note{font-size:13px}
}

/* Flexy note: one left-aligned line on desktop, a short left stack on phones */
html.ledger #fy-strip .fy-strip-text{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 8px}
html.ledger #fy-strip .fy-strip-btn{width:auto!important;justify-content:flex-start}
/* toolbar action row may wrap instead of spilling out of the panel */
html.ledger #filters .dxf-status{flex-wrap:wrap;row-gap:8px}
@media (max-width:768px){
  html.ledger #fy-strip{align-items:flex-start}
  html.ledger #fy-strip .fy-strip-text{flex-direction:column;align-items:flex-start;gap:2px}
}
