/* listing-tools.css - Save / Share row, payment estimator, market trends and schools on every
   listing page (round 111, 2026-10-15). Reads the page's own tokens (--gold, --line ...).
   Every multi-item row is flex-wrap or auto-fit, so adding or removing a card never orphans one. */
.lt-actions{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 4px}
.lt-btn{display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--sans);color:var(--cream);background:transparent;border:1px solid var(--line2);border-radius:24px;padding:11px 18px;cursor:pointer;min-height:44px}
.lt-btn:hover,.lt-btn:focus-visible{border-color:var(--gold-br);color:var(--gold-br)}
.lt-btn[aria-pressed="true"]{background:rgba(127,166,255,.14);border-color:var(--gold-br);color:var(--gold-br)}
.lt-btn svg{width:18px;height:18px;flex:0 0 auto}
.lt-pop{position:relative}
.lt-menu{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:200px;background:#121417;border:1px solid var(--line2);border-radius:12px;padding:6px;box-shadow:0 14px 40px rgba(0,0,0,.45);display:none}
.lt-menu.on{display:block}
.lt-menu a,.lt-menu button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--cream);font:500 14px/1.3 var(--sans);padding:13px 12px;min-height:44px;border-radius:8px;cursor:pointer}
.lt-menu a:hover,.lt-menu button:hover{background:rgba(127,166,255,.12);color:var(--gold-br)}
.lt-panel{margin:10px 0 6px;background:rgba(127,166,255,.08);border:1px solid var(--line2);border-radius:12px;padding:14px 16px;max-width:620px;font-size:14px}
.lt-panel p{margin:0 0 10px;color:#DDE0E7}
.lt-inline{display:flex;flex-wrap:wrap;gap:8px}
.lt-inline input{flex:1 1 220px;min-width:0;padding:11px 12px;border-radius:9px;border:1px solid #D2D6DE;font:14px var(--sans)}
.lt-inline button{flex:0 0 auto}
.lt-solid{background:var(--gold);color:var(--bg);border:0;border-radius:24px;padding:11px 18px;font:700 14px var(--sans);cursor:pointer;min-height:44px}
.lt-solid:hover{background:var(--gold-br)}
.lt-msg{font-size:13px;margin-top:8px;color:var(--sage)}
.lt-msg.err{color:#F4B4B2}
/* estimator: the box reserves its height before the deferred script fills it, so a #payment
   deep link or a back-button scroll restore does not jump (measured: about 560 px desktop, 1150 px phone) */
.lt-est{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start;min-height:560px}
@media(max-width:760px){.lt-est{grid-template-columns:minmax(0,1fr);min-height:1150px}}
.lt-lab{display:block;font-size:13px;color:var(--sage);margin-bottom:6px}
.lt-terms{font-size:12.5px;color:#DDE0E7;line-height:1.55;margin:8px 0 0}
.lt-ask{margin-top:16px;background:rgba(127,166,255,.06)}
.lt-ask p{margin:0 0 10px}
.lt-chk{display:flex;gap:8px;align-items:center;font-size:13px;color:#DDE0E7;flex:1 1 100%;min-height:44px;cursor:pointer}
.lt-chk input{width:20px;height:20px;flex:0 0 auto}
.lt-ctrls{display:grid;gap:14px}
.lt-f label{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--sage);margin-bottom:6px}
.lt-f label output{color:var(--cream);font-weight:700;font-size:14px;white-space:nowrap}
.lt-f input[type=range]{width:100%;accent-color:var(--gold-br);height:44px;margin:-8px 0;cursor:pointer}
.lt-f .lt-sub{font-size:12px;color:var(--sage);margin-top:2px}
.lt-term{display:flex;flex-wrap:wrap;gap:8px}
.lt-term button{flex:1 1 0;min-height:44px;justify-content:center}
.lt-out{background:rgba(244,239,231,.04);border:1px solid var(--line);border-radius:14px;padding:18px}
.lt-total{font-family:var(--serif);font-size:36px;color:var(--gold-br);line-height:1.1}
.lt-total small{display:block;font:400 13px var(--sans);color:var(--sage);margin-top:4px}
.lt-bar{display:flex;height:12px;border-radius:7px;overflow:hidden;margin:16px 0 12px;background:var(--line)}
.lt-bar i{display:block;height:100%}
.lt-leg{display:grid;gap:7px;font-size:14px}
.lt-leg div{display:flex;justify-content:space-between;gap:10px}
.lt-leg span{display:inline-flex;align-items:center;gap:8px;color:#DDE0E7}
.lt-leg b{white-space:nowrap}
.lt-dot{width:10px;height:10px;border-radius:3px;display:inline-block;flex:0 0 auto}
.lt-meta{font-size:13px;color:var(--sage);margin-top:12px;line-height:1.55}
.lt-disc{font-size:11.5px;color:var(--sage);line-height:1.6;margin-top:14px;max-width:90ch}
.lt-cap{font-size:12px;color:var(--sage);line-height:1.6;margin-top:10px;max-width:90ch}
.lt-cap a{color:var(--gold-br);font-weight:600}
/* market + schools */
.lt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.lt-card{background:rgba(244,239,231,.04);border:1px solid var(--line);border-radius:12px;padding:18px;color:var(--gold-br)}
.lt-card h3{font:700 15px var(--sans);color:var(--gold-br);margin-bottom:10px}
.lt-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:8px}
.lt-stat b{display:block;font:700 20px var(--serif);color:var(--cream)}
.lt-stat span{font-size:12px;color:var(--sage)}
.lt-spark{width:100%;height:54px;display:block;margin-top:6px}
.lt-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px;color:#DDE0E7}
.lt-list b{color:var(--cream)}
table.lt-sch{max-width:640px}
table.lt-sch th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
table.lt-sch th:nth-child(2){text-align:center}table.lt-sch th:last-child{text-align:right}
table.lt-sch thead th{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);font-weight:700}
table.lt-sch td:nth-child(2){text-align:center}
@media(max-width:520px){table.lt-sch td{padding:9px 6px}}
