:root{--swap-purple:#5b3fa4;--swap-purple-dark:#3e287a;--swap-soft:#f5f1ff;--swap-green:#24785f;--swap-ink:#202a28;--swap-muted:#66736f;--swap-line:#ded8ec;--swap-white:#fff}
body.swap-page{background:#fff;color:var(--swap-ink)}
.swap-page .site-header{border-bottom:1px solid #ece8f4;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px)}
.swap-nav{max-width:1240px;margin:auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.swap-nav .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--swap-ink)}
.swap-nav .brand-logo-mark{width:42px;height:42px}.swap-nav .brand-copy{display:grid;line-height:1.05}.swap-nav .brand-title{font-size:1.03rem}.swap-nav .brand-subtitle{font-size:.65rem;color:var(--swap-muted)}
.swap-nav-links{display:flex;align-items:center;gap:17px;font-size:.9rem}.swap-nav-links a{color:#39443f;text-decoration:none;font-weight:650;white-space:nowrap}.swap-nav-links a:hover,.swap-nav-links a.active{color:var(--swap-purple)}
.swap-nav-links .swap-account-link{padding:9px 13px;border:1px solid var(--swap-line);border-radius:999px;background:#fff}
.swap-menu-button{display:none;border:1px solid var(--swap-line);background:#fff;border-radius:10px;padding:9px 11px}
.swap-shell{max-width:1180px;margin:auto;padding:0 20px}.swap-section{padding:66px 0}.swap-section.compact{padding:42px 0}
.swap-hero{background:linear-gradient(145deg,#fff 0%,#faf8ff 55%,#f1ebff 100%);border-bottom:1px solid #ebe5f5}
.swap-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:38px;align-items:center;padding:72px 0}
.swap-kicker{display:inline-flex;align-items:center;gap:8px;border:1px solid #ddd2f5;border-radius:999px;background:#fff;padding:8px 12px;color:var(--swap-purple-dark);font-size:.77rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.swap-hero h1{font-size:clamp(2.35rem,5vw,4.8rem);line-height:.98;letter-spacing:-.045em;margin:18px 0 20px;max-width:850px}.swap-hero h1 span{color:var(--swap-purple)}
.swap-hero .lead{font-size:1.13rem;line-height:1.65;color:#53615d;max-width:790px}.swap-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.swap-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:13px 18px;text-decoration:none;border:1px solid #d9d1ea;background:#fff;color:#2e3734;font-weight:800;cursor:pointer}.swap-button.primary{background:var(--swap-purple);color:#fff;border-color:var(--swap-purple)}.swap-button.primary:hover{background:var(--swap-purple-dark)}.swap-button.soft{background:var(--swap-soft);color:var(--swap-purple-dark)}.swap-button.green{background:var(--swap-green);border-color:var(--swap-green);color:#fff}.swap-button.small{padding:9px 12px;font-size:.86rem}.swap-button.full{width:100%}
.swap-hero-card{border:1px solid #ded5f0;background:#fff;border-radius:26px;padding:26px;box-shadow:0 24px 60px rgba(65,42,116,.11)}.swap-hero-card h2{margin:0 0 14px;font-size:1.35rem}.swap-stat-grid{display:grid;gap:11px}.swap-stat{border:1px solid #ebe6f4;background:#fcfbff;border-radius:15px;padding:15px}.swap-stat strong{display:block;color:var(--swap-purple-dark);font-size:1.02rem}.swap-stat span{display:block;margin-top:5px;color:var(--swap-muted);font-size:.86rem;line-height:1.45}
.swap-heading{max-width:820px;margin-bottom:28px}.swap-heading .eyebrow{color:var(--swap-purple);font-weight:850;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.swap-heading h2{font-size:clamp(1.9rem,4vw,3.05rem);line-height:1.08;letter-spacing:-.03em;margin:8px 0 12px}.swap-heading p{color:var(--swap-muted);line-height:1.65;margin:0}
.swap-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.swap-type-card{border:1px solid var(--swap-line);border-radius:22px;padding:27px;background:#fff;box-shadow:0 14px 36px rgba(38,28,73,.055)}.swap-type-card .icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--swap-soft);color:var(--swap-purple);font-size:1.5rem}.swap-type-card h3{font-size:1.4rem;margin:17px 0 9px}.swap-type-card p{color:var(--swap-muted);line-height:1.62}.swap-type-card ul{padding-left:19px;color:#53615d;line-height:1.65}
.swap-note{border:1px solid #d9e9e3;background:#f6fbf9;border-radius:17px;padding:17px 19px;color:#35544a;line-height:1.55}.swap-note.purple{border-color:#dfd5f4;background:#faf8ff;color:#4a3b68}.swap-note.warn{border-color:#eadcae;background:#fffaf0;color:#6d5825}
.swap-toolbar{display:grid;grid-template-columns:1.2fr repeat(3,.8fr) auto;gap:11px;align-items:end;border:1px solid #e8e3f0;background:#fcfbff;border-radius:18px;padding:17px;margin-bottom:20px}.swap-field{display:grid;gap:7px;font-weight:750;font-size:.84rem;color:#46534f}.swap-field input,.swap-field select,.swap-field textarea{width:100%;border:1px solid #d8dede;border-radius:11px;padding:12px 13px;background:#fff;color:#25302d;font:inherit;font-weight:500}.swap-field textarea{resize:vertical;min-height:105px}.swap-field input:focus,.swap-field select:focus,.swap-field textarea:focus{outline:3px solid rgba(91,63,164,.12);border-color:#a996d5}
.swap-list{display:grid;gap:15px}.swap-listing-row{display:grid;grid-template-columns:190px 1fr auto;gap:20px;align-items:stretch;border:1px solid #e2ddec;border-radius:20px;padding:13px;background:#fff;box-shadow:0 10px 30px rgba(32,24,58,.045)}.swap-listing-image{height:145px;border-radius:14px;overflow:hidden;background:#f0edf5;display:grid;place-items:center;color:#7c718d}.swap-listing-image img{width:100%;height:100%;object-fit:cover}.swap-listing-copy h3{margin:3px 0 7px;font-size:1.24rem}.swap-listing-copy p{margin:5px 0;color:var(--swap-muted);line-height:1.5}.swap-tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.swap-tag{border:1px solid #ded7ed;background:#faf8ff;color:#59467c;border-radius:999px;padding:6px 9px;font-size:.75rem;font-weight:800}.swap-tag.green{border-color:#cce2da;background:#f3faf7;color:#2f6756}.swap-listing-actions{display:grid;align-content:center;gap:9px;min-width:155px}.swap-empty{border:1px dashed #d8d0e8;border-radius:18px;padding:32px;text-align:center;color:var(--swap-muted);background:#fcfbff}
.swap-form-card{border:1px solid #ded8eb;border-radius:24px;background:#fff;padding:28px;box-shadow:0 16px 45px rgba(42,31,78,.06)}.swap-form-section{border-top:1px solid #eeeaf4;padding-top:24px;margin-top:24px}.swap-form-section:first-child{border-top:0;padding-top:0;margin-top:0}.swap-form-section h3{margin:0 0 16px}.swap-grid{display:grid;gap:15px}.swap-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.swap-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.swap-check{display:flex;gap:11px;align-items:flex-start;border:1px solid #e6e1ee;border-radius:14px;padding:14px;background:#fcfbff;line-height:1.5;color:#4f5c58}.swap-check input{margin-top:4px}.swap-processing{opacity:.78;cursor:wait!important;position:relative}.swap-processing::after{content:' ';width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:swapSpin .8s linear infinite}@keyframes swapSpin{to{transform:rotate(360deg)}}
.swap-account-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #ddd6ed;border-radius:17px;padding:16px 18px;background:#faf8ff;margin-bottom:22px}.swap-account-strip strong{display:block}.swap-account-strip span{color:var(--swap-muted);font-size:.86rem}
.swap-status{border-radius:13px;padding:12px 14px;margin-top:13px;background:#f6f8f7;border:1px solid #dfe5e2;color:#44534e}.swap-status.ok{background:#f0faf5;border-color:#cce6d9;color:#28634f}.swap-status.warn{background:#fff9ee;border-color:#eadcb9;color:#6f5929}.swap-status.error{background:#fff4f4;border-color:#eccaca;color:#8a3434}
.swap-modal{position:fixed;inset:0;background:rgba(25,20,38,.58);display:none;align-items:center;justify-content:center;padding:20px;z-index:300}.swap-modal.open{display:flex}.swap-modal-box{background:#fff;border-radius:22px;max-width:760px;width:100%;max-height:90vh;overflow:auto;padding:25px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.swap-modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.swap-modal-close{border:1px solid #ddd6e9;background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}.swap-gallery{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:18px 0}.swap-gallery-main{height:290px;border-radius:16px;overflow:hidden;background:#f1edf7}.swap-gallery-main img,.swap-gallery-main video{width:100%;height:100%;object-fit:contain;background:#17141d}.swap-gallery-thumbs{display:grid;gap:8px;align-content:start}.swap-gallery-thumbs img{width:100%;height:88px;object-fit:cover;border-radius:10px}.swap-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.swap-detail{border:1px solid #e7e2ef;border-radius:12px;padding:12px}.swap-detail b{display:block;font-size:.76rem;color:#777080;text-transform:uppercase;letter-spacing:.03em}.swap-detail span{display:block;margin-top:5px}
.swap-account-main{background:#fbfaff;min-height:74vh}.swap-account-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}.swap-auth-card,.swap-dashboard-card{border:1px solid #dfd9eb;border-radius:22px;background:#fff;padding:25px}.swap-auth-tabs{display:flex;gap:8px;margin:18px 0}.swap-auth-tabs button{flex:1;border:1px solid #ded7ec;border-radius:11px;background:#fff;padding:11px;cursor:pointer}.swap-auth-tabs button.active{background:var(--swap-purple);border-color:var(--swap-purple);color:#fff}.swap-auth-fields{display:grid;gap:13px}.swap-dashboard-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0 22px}.swap-dashboard-summary div{border:1px solid #e5e0ed;border-radius:13px;padding:13px;background:#fcfbff}.swap-dashboard-summary strong{font-size:1.35rem;color:var(--swap-purple)}.swap-dashboard-summary span{display:block;color:var(--swap-muted);font-size:.78rem;margin-top:4px}.swap-record{border:1px solid #e5e0ed;border-radius:16px;padding:16px;margin-top:12px;background:#fff}.swap-record-head{display:flex;justify-content:space-between;gap:14px}.swap-record h4{margin:0 0 6px}.swap-record p{color:var(--swap-muted);margin:5px 0;line-height:1.5}.swap-record-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.swap-pill{display:inline-flex;border-radius:999px;padding:6px 9px;background:#f3eefc;color:#5c4686;font-size:.74rem;font-weight:800}.swap-pill.ok{background:#eaf8f1;color:#2d6b56}.swap-pill.no{background:#fff2f2;color:#8c4444}
.swap-footer{border-top:1px solid #ebe7f1;background:#fff}.swap-footer-inner{max-width:1180px;margin:auto;padding:28px 20px;display:flex;justify-content:space-between;gap:20px;color:#68746f}.swap-footer a{color:#5b4a7a;text-decoration:none}
.hidden{display:none!important}
@media(max-width:980px){.swap-menu-button{display:block}.swap-nav-links{display:none;position:absolute;left:14px;right:14px;top:67px;background:#fff;border:1px solid #e1dbea;border-radius:16px;padding:14px;box-shadow:0 18px 50px rgba(30,24,49,.14);flex-direction:column;align-items:stretch}.swap-nav-links.open{display:flex}.swap-nav-links a{padding:9px 5px}.swap-hero-grid,.swap-account-layout{grid-template-columns:1fr}.swap-toolbar{grid-template-columns:1fr 1fr}.swap-listing-row{grid-template-columns:150px 1fr}.swap-listing-actions{grid-column:1/-1;display:flex;min-width:0}.swap-type-grid{grid-template-columns:1fr}}
@media(max-width:680px){.swap-shell{padding:0 14px}.swap-section{padding:46px 0}.swap-hero-grid{padding:48px 0}.swap-hero h1{font-size:2.45rem}.swap-actions{display:grid}.swap-button{width:100%}.swap-type-card,.swap-form-card,.swap-auth-card,.swap-dashboard-card{padding:20px;border-radius:18px}.swap-grid.two,.swap-grid.three,.swap-toolbar,.swap-detail-grid,.swap-dashboard-summary{grid-template-columns:1fr}.swap-listing-row{grid-template-columns:1fr}.swap-listing-image{height:190px}.swap-account-strip,.swap-footer-inner{align-items:flex-start;flex-direction:column}.swap-gallery{grid-template-columns:1fr}.swap-gallery-thumbs{grid-template-columns:repeat(3,1fr)}.swap-record-head{display:block}}

/* =========================================================
   V21.0.1 — PUBLIC PROPERTY SWAP DENSITY + RELAYOUT ONLY
   Targets property-swap.html. Swap account and all behaviour
   remain unchanged.
   ========================================================= */
body.swap-page[data-swap-page="public"] .swap-shell{max-width:1200px}
body.swap-page[data-swap-page="public"] .swap-section{padding:38px 0}
body.swap-page[data-swap-page="public"] .swap-hero-grid{
  grid-template-columns:minmax(0,1.16fr) minmax(330px,.84fr);
  gap:26px;
  padding:40px 0 36px;
}
body.swap-page[data-swap-page="public"] .swap-kicker{
  padding:6px 10px;
  font-size:.7rem;
}
body.swap-page[data-swap-page="public"] .swap-hero h1{
  font-size:clamp(2.25rem,4.35vw,4.15rem);
  line-height:1;
  margin:12px 0 13px;
}
body.swap-page[data-swap-page="public"] .swap-hero .lead{
  max-width:760px;
  font-size:1rem;
  line-height:1.52;
  margin:0;
}
body.swap-page[data-swap-page="public"] .swap-actions{
  gap:8px;
  margin-top:18px;
}
body.swap-page[data-swap-page="public"] .swap-actions .swap-button{
  padding:10px 14px;
  border-radius:10px;
  font-size:.86rem;
}
body.swap-page[data-swap-page="public"] .swap-hero-card{
  padding:19px;
  border-radius:20px;
  box-shadow:0 16px 38px rgba(65,42,116,.09);
}
body.swap-page[data-swap-page="public"] .swap-hero-card h2{
  margin:0 0 10px;
  font-size:1.13rem;
}
body.swap-page[data-swap-page="public"] .swap-stat-grid{gap:7px}
body.swap-page[data-swap-page="public"] .swap-stat{
  padding:10px 12px;
  border-radius:12px;
}
body.swap-page[data-swap-page="public"] .swap-stat strong{font-size:.9rem}
body.swap-page[data-swap-page="public"] .swap-stat span{
  margin-top:3px;
  font-size:.78rem;
  line-height:1.38;
}

/* Horizontal heading treatment uses width more efficiently. */
body.swap-page[data-swap-page="public"] .swap-heading{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(280px,.86fr) minmax(360px,1.14fr);
  grid-template-rows:auto auto;
  column-gap:34px;
  row-gap:2px;
  align-items:end;
  margin-bottom:18px;
}
body.swap-page[data-swap-page="public"] .swap-heading .eyebrow{
  grid-column:1;
  grid-row:1;
  font-size:.69rem;
}
body.swap-page[data-swap-page="public"] .swap-heading h2{
  grid-column:1;
  grid-row:2;
  font-size:clamp(1.65rem,3vw,2.45rem);
  line-height:1.06;
  margin:5px 0 0;
}
body.swap-page[data-swap-page="public"] .swap-heading p{
  grid-column:2;
  grid-row:1 / 3;
  align-self:center;
  font-size:.92rem;
  line-height:1.5;
}

/* Route cards are compact two-column title rows rather than tall stacks. */
body.swap-page[data-swap-page="public"] .swap-type-grid{gap:14px}
body.swap-page[data-swap-page="public"] .swap-type-card{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  column-gap:11px;
  align-items:center;
  padding:18px 19px;
  border-radius:18px;
  box-shadow:0 9px 24px rgba(38,28,73,.045);
}
body.swap-page[data-swap-page="public"] .swap-type-card .icon{
  width:40px;
  height:40px;
  border-radius:12px;
  font-size:1.2rem;
}
body.swap-page[data-swap-page="public"] .swap-type-card h3{
  margin:0;
  font-size:1.18rem;
}
body.swap-page[data-swap-page="public"] .swap-type-card p,
body.swap-page[data-swap-page="public"] .swap-type-card ul,
body.swap-page[data-swap-page="public"] .swap-type-card .swap-button{
  grid-column:1 / -1;
}
body.swap-page[data-swap-page="public"] .swap-type-card p{
  margin:11px 0 3px;
  font-size:.89rem;
  line-height:1.48;
}
body.swap-page[data-swap-page="public"] .swap-type-card ul{
  margin:5px 0 13px;
  line-height:1.48;
  font-size:.86rem;
}
body.swap-page[data-swap-page="public"] .swap-type-card .swap-button{
  width:auto;
  justify-self:start;
  padding:9px 12px;
  border-radius:10px;
  font-size:.82rem;
}

/* Browse panel now reads as a compact working band. */
body.swap-page[data-swap-page="public"] #browse-swap{
  background:#fcfbff;
  border-top:1px solid #eeeaf5;
  border-bottom:1px solid #eeeaf5;
}
body.swap-page[data-swap-page="public"] .swap-toolbar{
  gap:8px;
  padding:13px;
  margin-bottom:14px;
  border-radius:15px;
}
body.swap-page[data-swap-page="public"] .swap-field{gap:5px;font-size:.79rem}
body.swap-page[data-swap-page="public"] .swap-field input,
body.swap-page[data-swap-page="public"] .swap-field select,
body.swap-page[data-swap-page="public"] .swap-field textarea{
  padding:10px 11px;
  border-radius:9px;
}
body.swap-page[data-swap-page="public"] .swap-field textarea{min-height:88px}
body.swap-page[data-swap-page="public"] .swap-empty{padding:22px;border-radius:15px}
body.swap-page[data-swap-page="public"] .swap-list{gap:11px}
body.swap-page[data-swap-page="public"] .swap-listing-row{
  grid-template-columns:175px 1fr auto;
  gap:15px;
  padding:10px;
  border-radius:16px;
}
body.swap-page[data-swap-page="public"] .swap-listing-image{height:132px;border-radius:11px}

/* Listing area retains every field but removes excess vertical air. */
body.swap-page[data-swap-page="public"] .swap-account-strip{
  padding:12px 14px;
  margin-bottom:14px;
  border-radius:14px;
}
body.swap-page[data-swap-page="public"] .swap-form-card{
  padding:20px;
  border-radius:19px;
  box-shadow:0 10px 30px rgba(42,31,78,.05);
}
body.swap-page[data-swap-page="public"] .swap-form-section{
  padding-top:16px;
  margin-top:16px;
}
body.swap-page[data-swap-page="public"] .swap-form-section h3{
  margin:0 0 11px;
  font-size:1.02rem;
}
body.swap-page[data-swap-page="public"] .swap-grid{gap:10px}
body.swap-page[data-swap-page="public"] .swap-form-section > .swap-grid + .swap-grid,
body.swap-page[data-swap-page="public"] .swap-form-section > .swap-field + .swap-grid,
body.swap-page[data-swap-page="public"] .swap-form-section > .swap-grid + .swap-field{
  margin-top:10px;
}
body.swap-page[data-swap-page="public"] .swap-check{
  gap:9px;
  padding:11px 12px;
  border-radius:11px;
  font-size:.86rem;
  line-height:1.42;
}
body.swap-page[data-swap-page="public"] .swap-check + .swap-check{margin-top:8px}
body.swap-page[data-swap-page="public"] .swap-note{
  padding:13px 15px;
  border-radius:13px;
  font-size:.88rem;
  line-height:1.45;
}
body.swap-page[data-swap-page="public"] .swap-form-section .swap-note.warn{margin-top:10px}
body.swap-page[data-swap-page="public"] .swap-form-section .swap-button.full{margin-top:10px;padding:11px 16px}
body.swap-page[data-swap-page="public"] .swap-status{padding:10px 12px;margin-top:8px}

/* Safety and footer close the page without the former large blank interval. */
body.swap-page[data-swap-page="public"] #swap-safety{padding-top:34px;padding-bottom:34px}
body.swap-page[data-swap-page="public"] #swap-safety .swap-type-grid{gap:12px}
body.swap-page[data-swap-page="public"] .swap-footer-inner{padding:18px 20px;font-size:.86rem}

@media(max-width:980px){
  body.swap-page[data-swap-page="public"] .swap-hero-grid{grid-template-columns:1fr;padding:34px 0 30px}
  body.swap-page[data-swap-page="public"] .swap-heading{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    row-gap:0;
  }
  body.swap-page[data-swap-page="public"] .swap-heading .eyebrow,
  body.swap-page[data-swap-page="public"] .swap-heading h2,
  body.swap-page[data-swap-page="public"] .swap-heading p{
    grid-column:1;
    grid-row:auto;
  }
  body.swap-page[data-swap-page="public"] .swap-heading p{margin-top:8px}
  body.swap-page[data-swap-page="public"] .swap-listing-row{grid-template-columns:145px 1fr}
}
@media(max-width:680px){
  body.swap-page[data-swap-page="public"] .swap-section{padding:28px 0}
  body.swap-page[data-swap-page="public"] .swap-hero-grid{padding:30px 0 27px;gap:18px}
  body.swap-page[data-swap-page="public"] .swap-hero h1{font-size:2.25rem}
  body.swap-page[data-swap-page="public"] .swap-hero .lead{font-size:.94rem;line-height:1.48}
  body.swap-page[data-swap-page="public"] .swap-actions{margin-top:15px}
  body.swap-page[data-swap-page="public"] .swap-hero-card{padding:15px}
  body.swap-page[data-swap-page="public"] .swap-heading{margin-bottom:14px}
  body.swap-page[data-swap-page="public"] .swap-heading h2{font-size:1.72rem}
  body.swap-page[data-swap-page="public"] .swap-type-card,
  body.swap-page[data-swap-page="public"] .swap-form-card{padding:15px;border-radius:15px}
  body.swap-page[data-swap-page="public"] .swap-toolbar{padding:11px}
  body.swap-page[data-swap-page="public"] .swap-listing-row{grid-template-columns:1fr}
  body.swap-page[data-swap-page="public"] .swap-listing-image{height:180px}
  body.swap-page[data-swap-page="public"] .swap-account-strip{padding:11px 12px}
  body.swap-page[data-swap-page="public"] #swap-safety{padding:27px 0}
  body.swap-page[data-swap-page="public"] .swap-footer-inner{padding:15px 14px}
}
body.swap-page[data-swap-page="public"] .swap-upload-warning{
  margin-top:9px;
  padding:9px 11px;
  border:1px solid #eadcb9;
  border-radius:10px;
  background:#fffaf0;
  color:#6f5929;
  font-size:.78rem;
  line-height:1.4;
}

/* =========================================================
   V21.0.2 — SWAP ACCOUNT DENSITY + RELAYOUT ONLY
   Targets swap-account.html. Authentication, recovery,
   dashboard rendering and all backend behaviour are unchanged.
   ========================================================= */
body.swap-page[data-swap-page="account"] .swap-account-main{
  min-height:calc(100vh - 154px);
  background:linear-gradient(180deg,#fcfbff 0%,#f8f6fc 100%);
}
body.swap-page[data-swap-page="account"] .swap-account-section{padding:30px 0 34px}
body.swap-page[data-swap-page="account"] .swap-shell{max-width:1200px}
body.swap-page[data-swap-page="account"] .swap-account-heading{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
  grid-template-rows:auto auto;
  column-gap:34px;
  row-gap:3px;
  align-items:center;
  margin-bottom:18px;
}
body.swap-page[data-swap-page="account"] .swap-account-heading .eyebrow{
  grid-column:1;
  grid-row:1;
  font-size:.69rem;
}
body.swap-page[data-swap-page="account"] .swap-account-heading h1{
  grid-column:1;
  grid-row:2;
  margin:5px 0 0;
  max-width:720px;
  font-size:clamp(2rem,3.8vw,3.25rem);
  line-height:1.02;
  letter-spacing:-.035em;
}
body.swap-page[data-swap-page="account"] .swap-account-heading p{
  grid-column:2;
  grid-row:1 / 3;
  margin:0;
  color:var(--swap-muted);
  font-size:.91rem;
  line-height:1.5;
}
body.swap-page[data-swap-page="account"] .swap-account-layout{
  grid-template-columns:minmax(500px,1.04fr) minmax(390px,.96fr);
  gap:18px;
  align-items:start;
}
body.swap-page[data-swap-page="account"] .swap-auth-card,
body.swap-page[data-swap-page="account"] .swap-account-guide,
body.swap-page[data-swap-page="account"] .swap-dashboard-card{
  border:1px solid #dfd9eb;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 34px rgba(45,31,82,.055);
}
body.swap-page[data-swap-page="account"] .swap-auth-card{padding:22px}
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-kicker,
body.swap-page[data-swap-page="account"] .swap-account-guide .swap-kicker{
  padding:6px 10px;
  font-size:.68rem;
}
body.swap-page[data-swap-page="account"] .swap-auth-card h2{
  margin:11px 0 5px;
  font-size:1.42rem;
  line-height:1.15;
}
body.swap-page[data-swap-page="account"] .swap-auth-card .quiet{
  margin:0;
  max-width:660px;
  color:var(--swap-muted);
  font-size:.86rem;
  line-height:1.45;
}
body.swap-page[data-swap-page="account"] .swap-auth-tabs{
  gap:7px;
  margin:14px 0 13px;
}
body.swap-page[data-swap-page="account"] .swap-auth-tabs button{
  padding:10px;
  border-radius:10px;
  font-weight:800;
}
body.swap-page[data-swap-page="account"] .swap-auth-fields{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 12px;
}
body.swap-page[data-swap-page="account"] .swap-auth-full{grid-column:1 / -1}
body.swap-page[data-swap-page="account"] .swap-field{
  gap:5px;
  font-size:.79rem;
}
body.swap-page[data-swap-page="account"] .swap-field input{
  padding:10px 11px;
  border-radius:9px;
}
body.swap-page[data-swap-page="account"] .swap-auth-fields:has(.swap-confirm-field.hidden) .swap-password-field{
  grid-column:1 / -1;
}
body.swap-page[data-swap-page="account"] .swap-check{
  gap:9px;
  padding:10px 11px;
  border-radius:10px;
  font-size:.82rem;
  line-height:1.4;
}
body.swap-page[data-swap-page="account"] .swap-auth-fields > .swap-button.primary{
  min-height:43px;
  padding:10px 14px;
  border-radius:10px;
}
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-record-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:0;
}
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-record-actions .swap-button{
  width:100%;
  padding:9px 10px;
  border-radius:9px;
  font-size:.79rem;
}
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-record-actions .swap-button:last-child:nth-child(3){
  grid-column:1 / -1;
}
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-status{
  margin-top:0;
  padding:10px 11px;
  border-radius:10px;
  font-size:.81rem;
  line-height:1.4;
}
body.swap-page[data-swap-page="account"] .swap-account-side{
  display:grid;
  gap:13px;
}
body.swap-page[data-swap-page="account"] .swap-account-guide{padding:22px}
body.swap-page[data-swap-page="account"] .swap-account-guide h2{
  margin:11px 0 7px;
  font-size:1.42rem;
  line-height:1.15;
}
body.swap-page[data-swap-page="account"] .swap-account-guide > p{
  margin:0 0 14px;
  color:var(--swap-muted);
  font-size:.87rem;
  line-height:1.48;
}
body.swap-page[data-swap-page="account"] .swap-account-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:12px;
}
body.swap-page[data-swap-page="account"] .swap-account-feature-grid > div{
  border:1px solid #e8e2f0;
  border-radius:12px;
  background:#fcfbff;
  padding:11px;
}
body.swap-page[data-swap-page="account"] .swap-account-feature-grid strong{
  display:block;
  color:var(--swap-purple-dark);
  font-size:.82rem;
}
body.swap-page[data-swap-page="account"] .swap-account-feature-grid span{
  display:block;
  margin-top:4px;
  color:var(--swap-muted);
  font-size:.75rem;
  line-height:1.38;
}
body.swap-page[data-swap-page="account"] .swap-account-guide .swap-note{
  padding:11px 12px;
  border-radius:11px;
  font-size:.8rem;
  line-height:1.42;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:13px}
body.swap-page[data-swap-page="account"] .swap-dashboard-card .swap-empty{
  min-height:86px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:15px;
  border-radius:12px;
  background:linear-gradient(135deg,#faf8ff,#f6f2fd);
  border:1px dashed #d9cfee;
  color:#66587e;
  line-height:1.4;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-card .swap-empty strong{
  color:var(--swap-purple-dark);
  font-size:.9rem;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-card .swap-empty span{font-size:.8rem}
body.swap-page[data-swap-page="account"] .swap-account-side:has(.swap-dashboard-summary) .swap-account-guide{display:none}
body.swap-page[data-swap-page="account"] .swap-account-layout:has(.swap-dashboard-summary){
  grid-template-columns:minmax(330px,.62fr) minmax(0,1.38fr);
}
body.swap-page[data-swap-page="account"] .swap-account-side:has(.swap-dashboard-summary) .swap-dashboard-card{
  padding:22px;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-summary{margin:13px 0 18px}
body.swap-page[data-swap-page="account"] .swap-record{padding:14px;margin-top:10px}
body.swap-page[data-swap-page="account"] .swap-footer-inner{padding:18px 20px;font-size:.85rem}

@media(max-width:980px){
  body.swap-page[data-swap-page="account"] .swap-account-section{padding:28px 0 32px}
  body.swap-page[data-swap-page="account"] .swap-account-heading{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    row-gap:0;
  }
  body.swap-page[data-swap-page="account"] .swap-account-heading .eyebrow,
  body.swap-page[data-swap-page="account"] .swap-account-heading h1,
  body.swap-page[data-swap-page="account"] .swap-account-heading p{
    grid-column:1;
    grid-row:auto;
  }
  body.swap-page[data-swap-page="account"] .swap-account-heading p{margin-top:8px;max-width:760px}
  body.swap-page[data-swap-page="account"] .swap-account-layout{grid-template-columns:1fr}
  body.swap-page[data-swap-page="account"] .swap-account-side{grid-template-columns:1fr}
}
@media(max-width:680px){
  body.swap-page[data-swap-page="account"] .swap-account-section{padding:24px 0 26px}
  body.swap-page[data-swap-page="account"] .swap-account-heading{margin-bottom:14px}
  body.swap-page[data-swap-page="account"] .swap-account-heading h1{font-size:2rem}
  body.swap-page[data-swap-page="account"] .swap-auth-card,
  body.swap-page[data-swap-page="account"] .swap-account-guide,
  body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:15px;border-radius:15px}
  body.swap-page[data-swap-page="account"] .swap-auth-fields{grid-template-columns:1fr;gap:9px}
  body.swap-page[data-swap-page="account"] .swap-auth-half,
  body.swap-page[data-swap-page="account"] .swap-auth-full,
  body.swap-page[data-swap-page="account"] .swap-password-field,
  body.swap-page[data-swap-page="account"] .swap-confirm-field{grid-column:1}
  body.swap-page[data-swap-page="account"] .swap-account-feature-grid{grid-template-columns:1fr}
  body.swap-page[data-swap-page="account"] .swap-auth-card .swap-record-actions{grid-template-columns:1fr}
  body.swap-page[data-swap-page="account"] .swap-auth-card .swap-record-actions .swap-button:last-child:nth-child(3){grid-column:1}
  body.swap-page[data-swap-page="account"] .swap-footer-inner{padding:15px 14px}
}

/* V21.0.3 — confirmation login, password visibility and mobile dashboard safeguards */
.swap-password-wrap{position:relative;display:block;width:100%}
.swap-password-wrap input{padding-right:48px!important}
.swap-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:35px;height:35px;border:0;border-radius:9px;background:transparent;display:grid;place-items:center;cursor:pointer;font-size:1rem;line-height:1;color:var(--swap-purple-dark)}
.swap-password-toggle:hover,.swap-password-toggle:focus-visible{background:var(--swap-soft);outline:2px solid rgba(91,63,164,.16)}
body.swap-page[data-swap-page="account"] .confirmation-login-only .swap-auth-tabs button[data-swap-auth-tab="login"]{width:100%;flex-basis:100%}
body.swap-page[data-swap-page="account"] .confirmation-login-only .swap-auth-tabs button[data-swap-auth-tab="register"]{display:none!important}
.swap-login-required-box,.swap-recovery-box{max-width:560px}
.swap-login-required-box>p{color:var(--swap-muted);line-height:1.65;margin:16px 0 20px}
.swap-login-required-actions{display:flex;flex-wrap:wrap;gap:10px}
.swap-recovery-box form{display:grid;gap:14px;margin-top:18px}

@media(max-width:980px){
  body.swap-page[data-swap-page="account"] .swap-account-layout:has(.swap-dashboard-summary){grid-template-columns:1fr}
  body.swap-page[data-swap-page="account"] .swap-account-side:has(.swap-dashboard-summary){width:100%;min-width:0}
  body.swap-page[data-swap-page="account"] .swap-account-side:has(.swap-dashboard-summary) .swap-dashboard-card{width:100%;min-width:0}
}
@media(max-width:680px){
  .swap-login-required-actions{display:grid;grid-template-columns:1fr}
  .swap-login-required-actions .swap-button{width:100%}
  body.swap-page[data-swap-page="account"] .swap-dashboard-summary{grid-template-columns:1fr}
  body.swap-page[data-swap-page="account"] .swap-record-head{flex-direction:column;align-items:stretch}
}

/* V21.0.4 paid-listing contact entitlement, calendar and private messaging */
.swap-message-box{max-width:780px}.swap-message-list{display:grid;gap:10px;max-height:46vh;overflow:auto;padding:10px;margin:14px 0;border:1px solid #e5dff0;border-radius:16px;background:#faf9fd}.swap-message{max-width:82%;padding:12px 14px;border-radius:15px;border:1px solid #e4deed;background:#fff}.swap-message.mine{justify-self:end;background:#f0eaff;border-color:#d5c7f1}.swap-message.theirs{justify-self:start;background:#f5fbf8;border-color:#d7e9df}.swap-message p{white-space:pre-wrap;margin:6px 0}.swap-message time{font-size:.72rem;color:#6e7773}.swap-field input[type="date"]{min-height:45px;color-scheme:light}.swap-note.green{background:#eef9f3;border-color:#c9e8d6;color:#216845}
@media(max-width:720px){.swap-message{max-width:94%}.swap-message-list{max-height:52vh}}

/* V21.0.4.2 retained post-payment confirmation */
.swap-payment-page{min-height:100vh;background:linear-gradient(180deg,#faf9fd 0%,#f5f3f9 100%)}
.swap-payment-main{min-height:calc(100vh - 190px);display:grid;place-items:center;padding:54px 20px}
.swap-payment-card{width:min(720px,100%);padding:38px;border:1px solid #ded7e9;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(58,39,105,.12);text-align:center}
.swap-payment-icon{width:66px;height:66px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#e9f8ef;color:#187345;font-size:2rem;font-weight:800;border:1px solid #c8e7d5}
.swap-payment-card h1{font-size:clamp(2rem,5vw,3.25rem);line-height:1.05;margin:14px auto 12px;letter-spacing:-.035em}
.swap-payment-lead{max-width:570px;margin:0 auto 22px;color:var(--swap-muted);font-size:1.08rem;line-height:1.65}
.swap-payment-card .swap-status{margin:18px 0;text-align:left}
.swap-payment-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;text-align:left}
.swap-payment-details>div{padding:14px;border:1px solid #e6e0ee;border-radius:14px;background:#faf9fc}
.swap-payment-details dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--swap-muted);font-weight:800}
.swap-payment-details dd{margin:5px 0 0;color:var(--swap-purple-dark);font-weight:800;overflow-wrap:anywhere}
.swap-payment-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:22px}
.swap-payment-note{margin:22px auto 0;max-width:600px;color:var(--swap-muted);font-size:.86rem;line-height:1.55}
.swap-payment-nav{display:flex!important}
@media(max-width:680px){.swap-payment-main{padding:32px 14px}.swap-payment-card{padding:24px 17px;border-radius:18px}.swap-payment-details{grid-template-columns:1fr}.swap-payment-actions{display:grid}.swap-payment-actions .swap-button{width:100%}.swap-payment-nav a:first-child{display:none}}

/* V22 included-contact completion return */
.swap-request-sent-banner{margin:14px 0 10px}


/* V22.1 route identity and video presentation */
.swap-route-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:850;line-height:1.1;border:1px solid transparent;white-space:nowrap;margin-top:4px}
.swap-route-permanent{background:#efe9ff;border-color:#cbbaf3;color:#4f2f91}
.swap-route-temporary{background:#e7f7fb;border-color:#a9dce8;color:#12677b}
.swap-route-unknown{background:#f4f4f5;border-color:#d7d7da;color:#555d5a}
.swap-video-button{background:#117b8d!important;border-color:#117b8d!important;color:#fff!important;box-shadow:0 8px 20px rgba(17,123,141,.22)}
.swap-video-button:hover{background:#0d6473!important;border-color:#0d6473!important}
.swap-record-head .swap-route-badge{margin-top:7px}


/* V22.3 — compact account status pills */
body.swap-page[data-swap-page="account"] .swap-record-head>.swap-pill{
  align-self:flex-start;
  flex:0 0 auto;
  width:auto;
  min-width:0;
  max-width:150px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.56rem;
  line-height:1.15;
  white-space:nowrap;
}
@media(max-width:680px){
  body.swap-page[data-swap-page="account"] .swap-record-head>.swap-pill{align-self:flex-start!important;width:auto!important}
}


/* =========================================================
   V22.5 — PROPERTY SWAP LANDING + DEDICATED LISTING JOURNEY
   Presentation/routing only. V22.4 checkout, consent,
   countdown, media, messaging and backend behaviour preserved.
   ========================================================= */
body.swap-page[data-swap-page="public"] .swap-hero-v225{background:linear-gradient(105deg,#fff 0%,#fcfbff 62%,#f2edff 100%);border-bottom:1px solid #eee9f7}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);padding:28px 0 24px;gap:28px;align-items:center}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{font-size:clamp(2.5rem,4.35vw,4rem);line-height:1.02;margin:12px 0 14px;max-width:650px}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1 span{display:block;color:#5530bd}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .lead{max-width:650px;font-size:.98rem;line-height:1.55}
.swap-actions-v225{display:grid!important;grid-template-columns:1.22fr 1.08fr .98fr;gap:10px!important;margin-top:20px!important}
.swap-action-card{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) 14px;align-items:center;gap:8px;padding:12px 11px;border:1px solid #e1dce9;border-radius:12px;background:#fff;color:#171320;text-decoration:none;box-shadow:0 7px 18px rgba(38,25,73,.08);transition:.18s ease}
.swap-action-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(38,25,73,.12)}
.swap-action-card strong,.swap-action-card small{display:block}.swap-action-card strong{font-size:.83rem;line-height:1.2}.swap-action-card small{font-size:.7rem;margin-top:3px;color:#625c6b;line-height:1.25}.swap-action-icon{font-size:1.75rem;color:#5630bd;line-height:1}.swap-action-arrow{color:#5630bd;font-weight:900}.swap-action-primary{background:linear-gradient(135deg,#189a2b,#0b7f20);border-color:#138526;color:#fff}.swap-action-primary small,.swap-action-primary .swap-action-icon,.swap-action-primary .swap-action-arrow{color:#fff}.swap-trust-line{margin:14px 0 0;font-size:.79rem;color:#47404f}.swap-trust-line span{display:inline-grid;place-items:center;width:17px;height:17px;margin-right:6px;border-radius:50%;background:#13972a;color:#fff;font-weight:900}
.swap-route-summary{padding:17px!important;border-radius:17px!important}.swap-route-summary h2{font-size:1.18rem!important;margin-bottom:9px!important}.swap-route-summary .swap-stat{display:grid;grid-template-columns:54px 1fr;gap:11px;align-items:center;padding:10px 11px!important}.swap-route-summary .swap-stat>span:last-child>span{display:block;margin-top:3px;font-size:.77rem;line-height:1.38;color:#4c4654}.swap-route-icon{width:48px;height:48px;border:1.5px solid currentColor;border-radius:50%;display:grid;place-items:center}.swap-route-icon svg{width:33px;height:33px;fill:currentColor;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.route-permanent{color:#138f27}.route-temporary,.route-role{color:#5730bd}.route-permanent>span:last-child,.route-temporary>span:last-child,.route-role>span:last-child{color:#191520}
.swap-route-choice{padding-top:28px!important}.swap-heading-centred{display:block!important;text-align:center;max-width:850px!important;margin:0 auto 16px!important}.swap-heading-centred .eyebrow,.swap-heading-centred h2,.swap-heading-centred p{display:block!important;grid-column:auto!important;grid-row:auto!important}.swap-heading-centred h2{font-size:clamp(1.55rem,2.8vw,2.15rem)!important;margin:7px 0 5px!important}.swap-heading-centred p{font-size:.88rem!important;margin:0!important}.swap-type-grid-v225{gap:16px!important}.swap-type-grid-v225 .swap-type-card{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;align-items:start!important;padding:17px!important}.swap-type-grid-v225 .swap-large-route-icon{width:76px!important;height:76px!important;border-radius:50%!important;background:#fff!important}.swap-large-route-icon svg{width:55px;height:55px;fill:currentColor;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.route-card-permanent{border-color:#b8dfbf!important;color:#118b26}.route-card-temporary{border-color:#d1c4f4!important;color:#5630bd}.swap-type-content{color:#211c29}.swap-type-content h3{color:inherit!important}.route-card-permanent .swap-type-content h3{color:#118b26!important}.route-card-temporary .swap-type-content h3{color:#5630bd!important}.swap-type-grid-v225 .swap-type-card p,.swap-type-grid-v225 .swap-type-card ul,.swap-type-grid-v225 .swap-type-card .swap-button{grid-column:auto!important}.swap-type-grid-v225 .swap-type-card p{margin:6px 0 5px!important}.swap-type-grid-v225 .swap-type-card ul{margin:5px 0 11px!important}.swap-type-grid-v225 .swap-button{display:inline-flex!important;gap:18px}.swap-important-bar{margin-top:13px;padding:10px 14px;border:1px solid #e3dfea;border-radius:13px;background:#fff;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;font-size:.78rem}.swap-important-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#15972c;color:#fff;font-weight:900}.swap-important-bar strong,.swap-important-bar small{display:block}.swap-important-bar small{margin-top:2px;color:#5f5967}.swap-important-bar a{color:#5630bd;text-decoration:none;font-weight:800}
/* Public page no longer displays the long listing form. */
body.swap-page:not(.swap-listing-page) #list-swap{display:none}
/* Dedicated listing page. */
body.swap-listing-page{background:#faf9fc}.swap-listing-intro{padding:27px 0 18px;background:linear-gradient(105deg,#fff,#f5f0ff);border-bottom:1px solid #ebe6f3}.swap-listing-intro h1{font-size:clamp(2rem,4vw,3.25rem);line-height:1.04;margin:9px 0 8px}.swap-listing-intro p{max-width:760px;margin:0;color:#5d5665}.swap-back-link{display:inline-block;margin-bottom:13px;color:#5630bd;font-weight:800;text-decoration:none}.swap-listing-steps{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.swap-listing-steps span{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #ddd5eb;border-radius:999px;background:#fff;font-size:.76rem;font-weight:800}.swap-listing-steps b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#5630bd;color:#fff}.swap-listing-page #list-swap{padding-top:22px!important}.swap-listing-page #list-swap .swap-heading{display:none!important}.swap-listing-page .swap-account-strip{max-width:1100px;margin-left:auto;margin-right:auto}.swap-listing-page .swap-form-card{max-width:1100px;margin:0 auto;background:#fff}
@media(max-width:980px){body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{grid-template-columns:1fr}.swap-actions-v225{grid-template-columns:repeat(3,1fr)}.swap-route-summary{max-width:none}.swap-type-grid-v225 .swap-type-card{grid-template-columns:76px 1fr!important}.swap-type-grid-v225 .swap-large-route-icon{width:64px!important;height:64px!important}.swap-large-route-icon svg{width:45px;height:45px}}
@media(max-width:720px){body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{padding:24px 0 22px}.swap-actions-v225{grid-template-columns:1fr}.swap-action-card{padding:11px 12px}.swap-route-summary .swap-stat{grid-template-columns:46px 1fr}.swap-route-icon{width:42px;height:42px}.swap-route-icon svg{width:28px;height:28px}.swap-type-grid-v225 .swap-type-card{grid-template-columns:1fr!important}.swap-type-grid-v225 .swap-large-route-icon{margin-bottom:5px}.swap-important-bar{grid-template-columns:34px 1fr}.swap-important-bar a{grid-column:2}.swap-listing-intro{padding:22px 0 16px}.swap-listing-steps{gap:6px}.swap-listing-steps span{font-size:.7rem;padding:6px 8px}}


/* V27.1 unified FMDirect visible brand */
.brand-title .fmd-purple{color:#4B2A92 !important;}
.brand-title .fmd-green{color:#28A853 !important;}
.brand-subtitle{color:#3F3F46 !important;}

/* V27.4 exact Swap header strapline colour */
html body .swap-nav a.brand .brand-copy .brand-subtitle,
html body .swap-nav .brand-subtitle{
  color:#343434 !important;
}

/* V28 uses the shared guided media uploader styles from styles.css. */

/* V28.1 polish */
.fmd-media-uploader-v28{gap:12px!important;padding:14px!important}
.fmd-photo-uploader-v28,.fmd-video-uploader-v28{padding:12px!important;gap:8px!important}
.fmd-add-media-button-v28{padding:8px 12px!important;font-size:.92rem!important}
.fmd-gallery-empty-v28,.fmd-video-preview-v28.empty{padding:10px!important;min-height:auto!important}
.fmd-supporting-files-v28{padding-top:8px!important}
.helper,.fmd-upload-help-v28{color:#7a7a84!important}

/* V29.3 confirmation message at the top of the Swap account page */
.swap-confirmation-top{
  margin:0 0 12px;
  padding:13px 16px;
  border:1px solid #bfe2ca;
  border-radius:14px;
  background:#eef9f3;
  color:#216845;
  display:grid;
  gap:2px;
}
.swap-confirmation-top strong{font-size:1rem}
.swap-confirmation-top span{font-size:.82rem}


/* ===== V29.4.5 Swap listing polish ===== */
.swap-listing-page .swap-photo-upload-button,
.swap-listing-page [data-swap-photo-button],
.swap-listing-page .swap-media-photos .swap-button.primary,
.swap-listing-page .swap-media-photos label.swap-button,
.swap-listing-page .swap-media-photos .button.primary{
  background:#fff!important;
  color:#2f2d34!important;
  border:1px solid #d6d1df!important;
  box-shadow:none!important;
}


/* ===== V29.4.6 exact live Swap controls fix ===== */
body.swap-page.swap-listing-page
.fmd-photo-uploader-v28
label.fmd-add-media-button-v28:not(.secondary){
  display:inline-flex!important;
  width:max-content!important;
  min-width:0!important;
  max-width:max-content!important;
  padding:8px 12px!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  background:#fff!important;
  color:#2f2d34!important;
  border:1px solid #d6d1df!important;
  border-radius:10px!important;
  box-shadow:none!important;
  font-weight:800!important;
  line-height:1!important;
}
body.swap-page.swap-listing-page
.fmd-photo-uploader-v28
label.fmd-add-media-button-v28:not(.secondary) span{
  display:inline!important;
  white-space:nowrap!important;
  color:#2f2d34!important;
  line-height:1!important;
}


/* ===== V29.5 final safe Swap visual consistency ===== */
body.swap-page.swap-listing-page .fmd-add-media-button-v28{
  min-height:36px!important;
  border-radius:10px!important;
  transition:border-color .15s ease, background .15s ease, transform .15s ease!important;
}
body.swap-page.swap-listing-page .fmd-add-media-button-v28:hover{
  background:#f8f7fa!important;
  border-color:#bdb6c9!important;
  transform:translateY(-1px)!important;
}
body.swap-page.swap-listing-page .fmd-media-counter-v28{
  color:#67626d!important;
  font-size:.8rem!important;
  font-weight:750!important;
  white-space:nowrap!important;
}


/* ===== V29.5.1 public Property Swap visual close-up ===== */
body.swap-page[data-swap-page="public"] .swap-hero-copy > .swap-kicker,
body.swap-page[data-swap-page="public"] .swap-heading > .eyebrow{
  display:none!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
  font-size:clamp(2.15rem,3.65vw,3.35rem)!important;
  line-height:1.04!important;
  margin:4px 0 11px!important;
}
body.swap-page[data-swap-page="public"] .swap-heading h2,
body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
  font-size:clamp(1.45rem,2.35vw,1.95rem)!important;
  line-height:1.12!important;
  margin:0 0 6px!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
  padding:23px 0 20px!important;
  gap:22px!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-card{
  padding:19px!important;
}
body.swap-page[data-swap-page="public"] .swap-action-card{
  padding:11px 12px!important;
  min-height:0!important;
}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-type-card{
  padding:14px!important;
  grid-template-columns:76px minmax(0,1fr)!important;
}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-large-route-icon{
  width:62px!important;
  height:62px!important;
}
body.swap-page[data-swap-page="public"] .swap-section{
  padding:38px 0!important;
}
@media(max-width:720px){
  body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
    font-size:2.05rem!important;
  }
  body.swap-page[data-swap-page="public"] .swap-heading h2,
  body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
    font-size:1.48rem!important;
  }
}


/* ==========================================================
   FMDirect V30 — public Property Swap density polish
   ========================================================== */
body.swap-page[data-swap-page="public"] .swap-section{
  padding:27px 0!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
  padding:16px 0!important;
  gap:15px!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
  margin:0 0 7px!important;
  font-size:clamp(1.95rem,3.2vw,2.95rem)!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .lead{
  margin:0 0 8px!important;
  font-size:.88rem!important;
  line-height:1.44!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-card{
  padding:15px!important;
}
body.swap-page[data-swap-page="public"] .swap-stat{
  padding:8px 9px!important;
}
body.swap-page[data-swap-page="public"] .swap-action-grid{
  gap:7px!important;
}
body.swap-page[data-swap-page="public"] .swap-action-card{
  padding:9px 10px!important;
}
body.swap-page[data-swap-page="public"] .swap-heading{
  margin-bottom:10px!important;
}
body.swap-page[data-swap-page="public"] .swap-heading h2,
body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
  margin:0 0 4px!important;
  font-size:clamp(1.32rem,2.05vw,1.75rem)!important;
}
body.swap-page[data-swap-page="public"] .swap-heading p{
  margin:0!important;
  font-size:.8rem!important;
  line-height:1.42!important;
}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225{
  gap:9px!important;
}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-type-card{
  padding:11px!important;
  grid-template-columns:64px minmax(0,1fr)!important;
}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-large-route-icon{
  width:54px!important;
  height:54px!important;
}
body.swap-page[data-swap-page="public"] .swap-type-content h3{
  margin:0 0 4px!important;
  font-size:1.06rem!important;
}
body.swap-page[data-swap-page="public"] .swap-type-content p{
  margin:0 0 5px!important;
  font-size:.76rem!important;
  line-height:1.4!important;
}
body.swap-page[data-swap-page="public"] .swap-search-panel,
body.swap-page[data-swap-page="public"] .swap-filter-panel{
  padding:13px!important;
}
body.swap-page[data-swap-page="public"] .swap-filter-grid{
  gap:7px!important;
}
body.swap-page[data-swap-page="public"] .swap-filter-grid input,
body.swap-page[data-swap-page="public"] .swap-filter-grid select,
body.swap-page[data-swap-page="public"] .swap-filter-grid button{
  min-height:38px!important;
  padding:8px 10px!important;
  font-size:.8rem!important;
}
body.swap-page[data-swap-page="public"] .swap-empty,
body.swap-page[data-swap-page="public"] .swap-empty-state{
  margin-top:8px!important;
  padding:14px!important;
}
body.swap-page[data-swap-page="public"] .swap-safety-grid,
body.swap-page[data-swap-page="public"] .swap-route-grid{
  gap:9px!important;
}
body.swap-page[data-swap-page="public"] .swap-safety-card,
body.swap-page[data-swap-page="public"] .swap-info-card{
  padding:12px!important;
}
body.swap-page[data-swap-page="public"] .swap-safety-card h3,
body.swap-page[data-swap-page="public"] .swap-info-card h3{
  margin:5px 0 4px!important;
  font-size:.98rem!important;
}
body.swap-page[data-swap-page="public"] .swap-safety-card p,
body.swap-page[data-swap-page="public"] .swap-info-card p{
  margin:0!important;
  font-size:.76rem!important;
  line-height:1.4!important;
}

/* Close the specific gap between empty listings and safety guidance. */
body.swap-page[data-swap-page="public"] #browse-swap{
  padding-bottom:18px!important;
}
body.swap-page[data-swap-page="public"] #swap-safety,
body.swap-page[data-swap-page="public"] .swap-safety-section{
  padding-top:18px!important;
}

@media(max-width:720px){
  body.swap-page[data-swap-page="public"] .swap-section{
    padding:21px 0!important;
  }
  body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
    font-size:1.82rem!important;
  }
  body.swap-page[data-swap-page="public"] .swap-heading h2,
  body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
    font-size:1.34rem!important;
  }
  body.swap-page[data-swap-page="public"] .swap-hero-card,
  body.swap-page[data-swap-page="public"] .swap-search-panel,
  body.swap-page[data-swap-page="public"] .swap-filter-panel,
  body.swap-page[data-swap-page="public"] .swap-safety-card,
  body.swap-page[data-swap-page="public"] .swap-info-card{
    padding:10px!important;
  }
  body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-type-card{
    grid-template-columns:54px minmax(0,1fr)!important;
    padding:9px!important;
  }
  body.swap-page[data-swap-page="public"] .swap-type-grid-v225 .swap-large-route-icon{
    width:48px!important;
    height:48px!important;
  }
}

/* V32 professional rebuild — compact Swap registration guidance only. */
.registration-route-v32 select{min-height:42px;}
.swap-route-note-v32{
  font-size:.75rem;
  line-height:1.4;
  color:#6d628f;
  background:#faf8ff;
  border:1px solid #e8e1fa;
  border-radius:12px;
  padding:8px 10px;
}
/* Preserve the verified sharp password control dimensions. */
.swap-password-toggle{width:35px!important;height:35px!important;font-size:1rem!important;}


/* V32.1 — lighter, smaller and denser Swap account presentation. */
body.swap-page[data-swap-page="account"] .swap-account-heading h1{
  font-size:clamp(1.8rem,3vw,2.45rem)!important;
  font-weight:500!important;
  line-height:1.1!important;
  letter-spacing:-.02em!important;
}
body.swap-page[data-swap-page="account"] .swap-account-heading{margin-bottom:13px!important;}
body.swap-page[data-swap-page="account"] .swap-account-heading .eyebrow,
body.swap-page[data-swap-page="account"] .swap-auth-card .swap-kicker,
body.swap-page[data-swap-page="account"] .swap-account-guide .swap-kicker{
  font-weight:600!important;
  font-size:.64rem!important;
  padding:5px 9px!important;
}
body.swap-page[data-swap-page="account"] .swap-auth-card h2,
body.swap-page[data-swap-page="account"] .swap-account-guide h2{
  font-weight:500!important;
  font-size:1.22rem!important;
}
body.swap-page[data-swap-page="account"] .swap-account-layout{
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
  gap:16px!important;
}
body.swap-page[data-swap-page="account"] .swap-auth-card,
body.swap-page[data-swap-page="account"] .swap-account-guide,
body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:19px!important;}
body.swap-page[data-swap-page="account"] .swap-auth-fields{gap:10px!important;}
body.swap-page[data-swap-page="account"] .swap-auth-tabs{margin:12px 0!important;}
body.swap-page[data-swap-page="account"] .swap-password-toggle{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif!important;}
@media(max-width:980px){
 body.swap-page[data-swap-page="account"] .swap-account-layout{grid-template-columns:1fr!important;}
}
@media(max-width:700px){
 body.swap-page[data-swap-page="account"] .swap-account-heading h1{font-size:1.68rem!important;}
 body.swap-page[data-swap-page="account"] .swap-auth-card,
 body.swap-page[data-swap-page="account"] .swap-account-guide,
 body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:16px!important;}
}


/* V32.2 — lighter Swap typography. Submit/action buttons remain untouched. */
body.swap-page h1,body.swap-page h2,body.swap-page h3,body.swap-page h4,
body.swap-page .swap-brand,body.swap-page .swap-nav-links,
body.swap-page .swap-kicker,body.swap-page .swap-eyebrow,
body.swap-page strong,body.swap-page b,
body.swap-page .swap-route-badge,body.swap-page .swap-payment-details dt,
body.swap-page .swap-payment-details dd{
  font-weight:400!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{font-size:clamp(2.15rem,3.65vw,3.25rem)!important;line-height:1.08!important}
body.swap-page[data-swap-page="account"] .swap-account-heading h1{font-size:1.5rem!important;font-weight:400!important}
body.swap-listing-page .swap-listing-intro h1{font-size:clamp(1.8rem,3.2vw,2.65rem)!important;font-weight:400!important}
body.swap-page button strong,body.swap-page button b,
body.swap-page .swap-button strong,body.swap-page .swap-button b{
  font-weight:inherit!important;
}


/* ==========================================================
   FMDirect V32.3 — restrained public Property Swap hero
   Visual-only refinement; account, listing and action controls untouched.
   ========================================================== */
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
  font-size:clamp(1.82rem,2.85vw,2.58rem)!important;
  line-height:1.08!important;
  letter-spacing:-.03em!important;
  font-weight:400!important;
  margin:8px 0 11px!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1 span{
  font-size:.72em!important;
  line-height:1.08!important;
  font-weight:400!important;
  margin-top:3px!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
  padding-top:23px!important;
  padding-bottom:21px!important;
}
@media(max-width:720px){
  body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
    font-size:1.62rem!important;
  }
  body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
    padding-top:19px!important;
    padding-bottom:18px!important;
  }
}

/* ==========================================================
   FMDirect V32.4 — balanced public Swap page launch polish
   Visual-only overrides from verified V32.3.
   ========================================================== */

/* Equal, safe side margins: prevents left-edge clipping on desktop/mobile. */
body.swap-page[data-swap-page="public"] .swap-shell{
  width:min(1180px,calc(100% - 48px))!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}

/* One compact line on wide screens; naturally wraps on narrow screens. */
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
  font-size:clamp(1.58rem,2.35vw,2.18rem)!important;
  line-height:1.1!important;
  letter-spacing:-.025em!important;
  max-width:none!important;
  margin:5px 0 8px!important;
  font-weight:400!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1 span{
  display:inline!important;
  font-size:1em!important;
  line-height:inherit!important;
  margin:0!important;
  font-weight:400!important;
  color:inherit!important;
  opacity:1!important;
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
  padding-top:18px!important;
  padding-bottom:17px!important;
  gap:22px!important;
}
body.swap-page[data-swap-page="public"] .swap-heading h2,
body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
  font-size:clamp(1.16rem,1.65vw,1.46rem)!important;
  line-height:1.17!important;
  font-weight:400!important;
  margin-bottom:4px!important;
}
body.swap-page[data-swap-page="public"] .swap-heading{margin-bottom:8px!important;}
body.swap-page[data-swap-page="public"] .swap-section{padding:18px 0!important;}
body.swap-page[data-swap-page="public"] .swap-route-choice,
body.swap-page[data-swap-page="public"] #browse-swap,
body.swap-page[data-swap-page="public"] #swap-safety{padding-top:16px!important;padding-bottom:16px!important;}
body.swap-page[data-swap-page="public"] .swap-type-grid-v225,
body.swap-page[data-swap-page="public"] .swap-safety-grid{gap:8px!important;}

@media(max-width:720px){
  body.swap-page[data-swap-page="public"] .swap-shell{
    width:calc(100% - 28px)!important;
  }
  body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
    font-size:1.42rem!important;
    line-height:1.12!important;
    margin:4px 0 7px!important;
  }
  body.swap-page[data-swap-page="public"] .swap-hero-v225 .swap-hero-grid{
    padding-top:15px!important;
    padding-bottom:15px!important;
    gap:15px!important;
  }
  body.swap-page[data-swap-page="public"] .swap-heading h2,
  body.swap-page[data-swap-page="public"] .swap-heading-centred h2{
    font-size:1.16rem!important;
  }
  body.swap-page[data-swap-page="public"] .swap-section,
  body.swap-page[data-swap-page="public"] .swap-route-choice,
  body.swap-page[data-swap-page="public"] #browse-swap,
  body.swap-page[data-swap-page="public"] #swap-safety{
    padding-top:14px!important;
    padding-bottom:14px!important;
  }
}

/* ==========================================================
   FMDirect V32.5 — Swap title/link/account density corrections
   ========================================================== */
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{white-space:nowrap!important;font-size:clamp(1.48rem,2.15vw,2.02rem)!important}
body.swap-page[data-swap-page="public"] .swap-title-main-v325,
body.swap-page[data-swap-page="public"] .swap-title-life-v325{display:inline!important;font-size:1em!important;line-height:inherit!important;margin:0!important;color:inherit!important;font-weight:400!important}
body.swap-page[data-swap-page="public"] #how-swap-works{scroll-margin-top:90px}

body.swap-page[data-swap-page="account"] .swap-account-section{padding-top:16px!important;padding-bottom:18px!important}
body.swap-page[data-swap-page="account"] .swap-account-heading{margin-bottom:9px!important}
body.swap-page[data-swap-page="account"] .swap-account-heading h1{font-size:1.34rem!important;line-height:1.12!important;margin:4px 0!important}
body.swap-page[data-swap-page="account"] .swap-account-heading p{font-size:.82rem!important;line-height:1.42!important}
body.swap-page[data-swap-page="account"] .swap-auth-card,
body.swap-page[data-swap-page="account"] .swap-account-guide,
body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:15px!important}
body.swap-page[data-swap-page="account"] .swap-auth-tabs{margin:8px 0 9px!important;padding:3px!important}
body.swap-page[data-swap-page="account"] .swap-auth-tabs button{min-height:34px!important;padding:6px 12px!important;font-size:.82rem!important}
body.swap-page[data-swap-page="account"] .swap-auth-fields{gap:8px!important}
body.swap-page[data-swap-page="account"] .swap-field{gap:4px!important;font-size:.78rem!important}
body.swap-page[data-swap-page="account"] .swap-field input,
body.swap-page[data-swap-page="account"] .swap-field select{min-height:38px!important;padding:8px 10px!important;font-size:.88rem!important}
body.swap-page[data-swap-page="account"] .swap-password-toggle{width:32px!important;height:32px!important;min-height:32px!important}
body.swap-page[data-swap-page="account"] .swap-record-actions{gap:6px!important}
body.swap-page[data-swap-page="account"] .swap-record-actions .swap-button.small{min-height:32px!important;padding:6px 10px!important;font-size:.75rem!important}
body.swap-page[data-swap-page="account"] .swap-status{padding:8px 10px!important;font-size:.76rem!important}
@media(max-width:720px){
 body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{white-space:normal!important;font-size:1.34rem!important}
 body.swap-page[data-swap-page="public"] .swap-title-main-v325,
 body.swap-page[data-swap-page="public"] .swap-title-life-v325{display:inline!important}
 body.swap-page[data-swap-page="account"] .swap-auth-card,
 body.swap-page[data-swap-page="account"] .swap-account-guide,
 body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:13px!important}
}


/* V32.8 final exact Swap public hero */
body.swap-page[data-swap-page="public"] .swap-hero-v225{
  padding-top:16px!important;padding-bottom:16px!important
}
body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{
  font-size:clamp(1.36rem,1.85vw,1.70rem)!important;
  line-height:1.12!important;
  font-weight:400!important;
  white-space:nowrap!important;
  margin:5px 0 8px!important;
}
body.swap-page[data-swap-page="public"] .swap-title-main-v325,
body.swap-page[data-swap-page="public"] .swap-title-life-v325{font-weight:400!important}
body.swap-page[data-swap-page="public"] .route-permanent .swap-route-icon,
body.swap-page[data-swap-page="public"] .route-card-permanent .icon{color:#16845d!important;background:#effaf5!important}
body.swap-page[data-swap-page="public"] .route-temporary .swap-route-icon,
body.swap-page[data-swap-page="public"] .route-card-temporary .icon{color:#654ad5!important;background:#f5f1ff!important}
body.swap-page[data-swap-page="public"] .swap-footer{padding-top:14px!important;padding-bottom:14px!important}
body.swap-page[data-swap-page="public"] .fmd-footer-signature-v3271 p{margin:4px 0 0!important}
@media(max-width:760px){
 body.swap-page[data-swap-page="public"] .swap-hero-v225 h1{font-size:1.28rem!important;white-space:normal!important}
}

/* V61.2 professional layout audit: give the Swap registration fields usable desktop width. */
@media(min-width:981px){
  body.swap-page[data-swap-page="account"] .swap-account-layout,
  body.swap-page[data-swap-page="account"] .swap-account-layout:has(.swap-dashboard-summary){
    grid-template-columns:minmax(400px,.82fr) minmax(0,1.18fr)!important;
    gap:18px!important;
  }
  body.swap-page[data-swap-page="account"] .swap-auth-fields{
    grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)!important;
  }
}
body.swap-page[data-swap-page="account"] .fmd-footer-signature-v3271 p,
body.swap-page.swap-listing-page .fmd-footer-signature-v3271 p,
body.swap-page .swap-footer .fmd-footer-signature-v3271 p{margin:4px 0 0!important}
body.swap-page .swap-footer .fmd-footer-signature-v3271>div{display:flex!important;align-items:baseline!important;gap:12px!important;flex-wrap:wrap!important}
body.swap-page .swap-footer .fmd-footer-signature-v3271 span{font-weight:700!important;color:#4b2aa8!important}

/* V69.3.3.18: accessible public Swap image carousel. */
.swap-gallery-main{position:relative}
.swap-gallery-stage{display:block;width:100%;height:100%;padding:0;border:0;background:#17141d;cursor:pointer}
.swap-gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:52px;border:1px solid rgba(255,255,255,.72);border-radius:12px;background:rgba(20,16,28,.72);color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.swap-gallery-arrow:hover,.swap-gallery-arrow:focus-visible{background:#5b3fa4;outline:3px solid rgba(255,255,255,.7)}
.swap-gallery-arrow.previous{left:12px}.swap-gallery-arrow.next{right:12px}
.swap-gallery-counter{position:absolute;right:12px;bottom:12px;z-index:2;padding:5px 9px;border-radius:999px;background:rgba(20,16,28,.76);color:#fff;font-size:.78rem}
.swap-gallery-thumbs{max-height:290px;overflow:auto}
.swap-gallery-thumb{display:block;width:100%;padding:0;border:2px solid transparent;border-radius:12px;background:#fff;cursor:pointer}
.swap-gallery-thumb img{display:block}
.swap-gallery-thumb.active{border-color:#5b3fa4;box-shadow:0 0 0 2px rgba(91,63,164,.16)}
.swap-gallery-thumb:focus-visible{outline:3px solid rgba(91,63,164,.35)}
@media(max-width:680px){
  .swap-gallery-thumbs{max-height:none;overflow-x:auto;grid-auto-flow:column;grid-auto-columns:84px;grid-template-columns:none}
  .swap-gallery-thumb img{height:64px}
  .swap-gallery-arrow{width:38px;height:46px}
}

/* V69.3.3.16: ownership declarations are compact controls, not text fields. */
body.swap-page.swap-listing-page .swap-field .swap-check input[type="radio"],
body.swap-page.swap-listing-page .swap-check input[type="checkbox"]{
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:2px 0 0!important;
  border-radius:50%;
  flex:0 0 18px!important;
  accent-color:#5b3fa4;
}
body.swap-page.swap-listing-page .swap-check input[type="checkbox"]{border-radius:4px}
body.swap-page.swap-listing-page .swap-field .swap-check{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr)!important;
  align-items:start!important;
  gap:10px!important;
}
body.swap-page.swap-listing-page .swap-field .swap-check span{min-width:0}


/* V75.2 — neutral FMDirect Property Intelligence guide-price presentation for public Swap listings. */
.fmd-swap-guide-price-v752{margin:12px 0 14px;padding:11px 12px;border-left:3px solid #176b4d;background:rgba(23,107,77,.055);border-radius:0 10px 10px 0;display:grid;gap:3px;max-width:520px}
.fmd-swap-guide-price-v752 span{font-size:.78rem;letter-spacing:.01em;color:#176b4d;font-weight:600}
.fmd-swap-guide-price-v752 strong{font-size:1.02rem;line-height:1.25;color:#173f34;font-weight:600}
.fmd-swap-guide-price-v752 small{font-size:.72rem;line-height:1.35;color:#596761;font-weight:400}
.fmd-swap-guide-price-v752.compact{margin:8px 0 9px;padding:8px 10px;max-width:340px}
.fmd-swap-guide-price-v752.compact strong{font-size:.9rem}
.fmd-swap-guide-price-v752.compact small{display:none}
@media(max-width:720px){.fmd-swap-guide-price-v752{margin-top:9px;padding:9px 10px;max-width:none}.fmd-swap-guide-price-v752 strong{font-size:.94rem}.fmd-swap-guide-price-v752.compact{max-width:none}}

/* V76.2.2.2 — Sale/Rental-standard Property Swap detail presentation */
#swapDetailsModal .swap-modal-box{max-width:1180px;width:min(1180px,96vw);padding:28px 30px;max-height:92vh}
.swap-sale-style-layout-v762222{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}
.swap-sale-style-main-v762222{min-width:0}
.swap-sale-style-summary-v762222{position:sticky;top:0;border:1px solid #e3dfee;border-radius:18px;padding:20px;background:#fff;box-shadow:0 12px 30px rgba(28,20,50,.07)}
#swapDetailsModal .swap-gallery{display:block;margin:18px 0}
#swapDetailsModal .swap-gallery-main{height:min(54vh,520px);border-radius:18px;background:#17141d}
#swapDetailsModal .swap-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;margin-top:12px;padding-bottom:4px}
#swapDetailsModal .swap-gallery-thumbs button{flex:0 0 108px;border:0;background:transparent;padding:0}
#swapDetailsModal .swap-gallery-thumbs img{height:74px;width:108px;border-radius:10px}
.swap-owner-estimate-v762222{display:grid;gap:5px;border-left:3px solid #5a35c9;background:#f5f1ff;padding:13px 14px;margin:14px 0;border-radius:0 12px 12px 0}
.swap-owner-estimate-v762222 small{text-transform:uppercase;letter-spacing:.05em;color:#625b72}
.swap-owner-estimate-v762222 strong{font-size:1.35rem;color:#21183b}
.swap-owner-estimate-v762222 span{font-size:.78rem;color:#625b72}
.swap-summary-facts-v762222{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.swap-summary-facts-v762222 span{border:1px solid #ded8ea;border-radius:999px;padding:6px 9px;font-size:.82rem}
.swap-description-v762222{margin-top:18px;border-top:1px solid #ece8f2;padding-top:16px}
@media(max-width:820px){#swapDetailsModal .swap-modal-box{padding:20px 16px}.swap-sale-style-layout-v762222{grid-template-columns:1fr}.swap-sale-style-summary-v762222{position:static}#swapDetailsModal .swap-gallery-main{height:340px}}

/* V76.2.2.3 — premium compact Property Swap video thumbnail control only */
#swapDetailsModal .swap-gallery-thumbs .swap-video-button{
  flex:0 0 108px!important;
  width:108px!important;
  height:74px!important;
  min-width:108px!important;
  min-height:74px!important;
  padding:7px 9px!important;
  border:1px solid #5b3fa4!important;
  border-radius:10px!important;
  background:linear-gradient(145deg,#6648b7 0%,#4a2e91 100%)!important;
  color:#fff!important;
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  font-size:.72rem!important;
  font-weight:750!important;
  line-height:1.05!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  text-align:center!important;
  box-shadow:0 7px 16px rgba(62,40,122,.20)!important;
  overflow:hidden!important;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease!important;
}
#swapDetailsModal .swap-gallery-thumbs .swap-video-button-icon{
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  padding-left:2px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.72rem;
  line-height:1;
}
#swapDetailsModal .swap-gallery-thumbs .swap-video-button-label{display:block;line-height:1.05}
#swapDetailsModal .swap-gallery-thumbs .swap-video-button:hover{
  background:linear-gradient(145deg,#573aa7 0%,#3e287a 100%)!important;
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(62,40,122,.26)!important;
}
#swapDetailsModal .swap-gallery-thumbs .swap-video-button:focus-visible{
  outline:3px solid rgba(91,63,164,.30)!important;
  outline-offset:2px!important;
}
@media(max-width:680px){
  #swapDetailsModal .swap-gallery-thumbs .swap-video-button{
    flex-basis:96px!important;
    width:96px!important;
    min-width:96px!important;
    height:66px!important;
    min-height:66px!important;
    border-radius:9px!important;
    font-size:.68rem!important;
  }
  #swapDetailsModal .swap-gallery-thumbs .swap-video-button-icon{width:22px;height:22px;flex-basis:22px;font-size:.66rem}
}

/* V76.2.2.4 — Property Swap video now matches the Sale/Rental embedded player */
#swapDetailsModal .swap-detail-video-v762224{
  margin:16px 0 18px!important;
  padding:10px!important;
  border:1px solid #e5e1eb!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:none!important;
}
#swapDetailsModal .swap-detail-video-v762224 .property-detail-video-player-v161152{
  display:block!important;
  width:100%!important;
  height:230px!important;
  border-radius:16px!important;
  background:#111!important;
  object-fit:contain!important;
}
@media(max-width:820px){
  #swapDetailsModal .swap-detail-video-v762224{margin-top:14px!important;padding:8px!important;border-radius:15px!important}
  #swapDetailsModal .swap-detail-video-v762224 .property-detail-video-player-v161152{height:210px!important;border-radius:13px!important}
}
@media(max-width:560px){
  #swapDetailsModal .swap-detail-video-v762224 .property-detail-video-player-v161152{height:185px!important}
}

/* V77.3 — readable request status layout
   Long Property Swap request decisions now sit on their own line inside
   the request card. This preserves readable typography without pushing
   either edge outside the card. */
body.swap-page[data-swap-page="account"] .swap-request-record .swap-record-head{
  display:block!important;
}
body.swap-page[data-swap-page="account"] .swap-request-status-row{
  display:block;
  margin:7px 0 4px;
  max-width:100%;
}
body.swap-page[data-swap-page="account"] .swap-request-status-row>.swap-pill{
  display:inline-flex;
  width:auto;
  max-width:100%;
  padding:5px 10px;
  font-size:.75rem;
  line-height:1.25;
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:left;
}
@media(max-width:680px){
  body.swap-page[data-swap-page="account"] .swap-request-status-row>.swap-pill{
    font-size:.72rem;
  }
}

/* V77.8 Property Swap renewal lifecycle */
.swap-renewal-panel-v778{margin-top:14px;padding:14px;border:1px solid #d9eadf;border-radius:14px;background:#f6fbf8}
.swap-renewal-panel-v778>strong{display:block;color:#235d49;margin-bottom:4px}
.swap-renewal-panel-v778>p{margin:4px 0 10px!important}
.swap-renewal-row-v778{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.swap-renewal-row-v778 label{display:grid;gap:6px;font-size:.82rem;font-weight:700;color:#33483f}
.swap-renewal-row-v778 select{width:100%;min-height:40px;border:1px solid #cfded5;border-radius:10px;background:#fff;padding:8px 10px;color:#223b31}
.swap-renewal-panel-v778 .swap-status{margin-top:9px;padding:9px 10px;font-size:.78rem}
@media(max-width:640px){.swap-renewal-row-v778{grid-template-columns:1fr}.swap-renewal-row-v778 .swap-button{width:100%}}

/* V77.13 Premium Property Swap Dashboard Layout Refinement — CSS presentation only */
body.swap-page[data-swap-page="account"] .swap-account-layout{gap:16px!important}
body.swap-page[data-swap-page="account"] .swap-dashboard-card{
  padding:13px!important;
  border-radius:17px!important;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-summary{
  gap:7px!important;
  margin:9px 0 12px!important;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-summary div{
  padding:9px!important;
  border-radius:11px!important;
}
body.swap-page[data-swap-page="account"] .swap-dashboard-summary strong{font-size:1.18rem!important}
body.swap-page[data-swap-page="account"] .swap-record{
  padding:11px!important;
  margin-top:8px!important;
  border-radius:13px!important;
}
body.swap-page[data-swap-page="account"] .swap-record-head{gap:9px!important}
body.swap-page[data-swap-page="account"] .swap-record h4{margin:0 0 4px!important;font-size:1rem!important}
body.swap-page[data-swap-page="account"] .swap-record p{margin:3px 0!important;line-height:1.38!important}
body.swap-page[data-swap-page="account"] .swap-record-actions{gap:6px!important;margin-top:8px!important}
body.swap-page[data-swap-page="account"] .swap-note{
  padding:10px!important;
  border-radius:12px!important;
  line-height:1.4!important;
}
body.swap-page[data-swap-page="account"] .payment-panel-v7711{
  margin-top:6px!important;
  padding:6px!important;
  border-radius:8px!important;
}
body.swap-page[data-swap-page="account"] .payment-panel-v7711 h4{margin:0 0 4px!important;font-size:.9rem!important}
body.swap-page[data-swap-page="account"] .payment-summary-table-v7711>div{min-height:29px!important;padding:4px 7px!important}
body.swap-page[data-swap-page="account"] .payment-history-v7711{margin-top:4px!important}
body.swap-page[data-swap-page="account"] .payment-history-v7711 summary{padding:5px 7px!important}
body.swap-page[data-swap-page="account"] .payment-history-v7711 th,
body.swap-page[data-swap-page="account"] .payment-history-v7711 td{padding:4px 6px!important}

@media(max-width:680px){
  body.swap-page[data-swap-page="account"] .swap-dashboard-card{padding:10px!important;border-radius:14px!important}
  body.swap-page[data-swap-page="account"] .swap-dashboard-summary{margin:7px 0 10px!important}
  body.swap-page[data-swap-page="account"] .swap-record{padding:9px!important;margin-top:7px!important}
  body.swap-page[data-swap-page="account"] .swap-note{padding:8px!important}
  body.swap-page[data-swap-page="account"] .payment-panel-v7711{padding:5px!important}
  body.swap-page[data-swap-page="account"] .payment-summary-table-v7711>div{padding:4px 6px!important;min-height:28px!important}
}

/* V77.17 — premium compact Private Swap messages modal only */
#swapMessageModal{padding:16px}
#swapMessageModal .swap-modal-box.swap-message-box{
  width:min(620px,90vw);
  max-width:620px;
  max-height:min(80vh,860px);
  padding:18px 18px 16px;
  border-radius:20px;
  box-shadow:0 24px 64px rgba(26,20,40,.22);
}
#swapMessageModal .swap-modal-head{
  gap:12px;
  align-items:flex-start;
}
#swapMessageModal .swap-kicker{
  padding:6px 10px;
  font-size:.66rem;
  letter-spacing:.05em;
}
#swapMessageTitle{
  margin:7px 0 3px;
  max-width:500px;
  font-size:clamp(1.2rem,1.85vw,1.55rem);
  line-height:1.18;
  letter-spacing:-.02em;
}
#swapMessageModal .swap-message-meta{
  margin:0 0 3px;
  font-size:.81rem;
  line-height:1.32;
}
#swapMessageModal [data-message-expiry]{
  margin:0;
  font-size:.78rem;
  line-height:1.32;
}
#swapMessageModal .swap-modal-close{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:11px;
  font-size:.95rem;
}
#swapMessageModal .swap-message-list{
  gap:8px;
  max-height:31vh;
  overflow:auto;
  padding:8px;
  margin:10px 0;
  border-radius:14px;
}
#swapMessageModal .swap-message{
  max-width:76%;
  padding:10px 12px;
  border-radius:14px;
}
#swapMessageModal .swap-message strong{
  display:block;
  font-size:.83rem;
  line-height:1.24;
}
#swapMessageModal .swap-message p{
  margin:5px 0;
  font-size:.91rem;
  line-height:1.4;
}
#swapMessageModal .swap-message time{
  display:block;
  margin-top:4px;
  font-size:.67rem;
}
#swapMessageModal form{
  display:grid;
  gap:9px;
}
#swapMessageModal .swap-field{
  gap:5px;
  font-size:.78rem;
}
#swapMessageModal .swap-field textarea{
  min-height:82px;
  padding:10px 11px;
  line-height:1.42;
  border-radius:10px;
}
#swapMessageModal .swap-record-actions{
  gap:8px;
  margin-top:0;
}
#swapMessageModal .swap-record-actions .swap-button{
  min-height:38px;
  padding:9px 13px;
  border-radius:10px;
  font-size:.82rem;
  flex:0 0 auto;
}
#swapMessageModal .swap-status{
  margin-top:0;
  padding:9px 10px;
  border-radius:12px;
  font-size:.75rem;
  line-height:1.38;
}
@media(max-width:720px){
  #swapMessageModal{padding:10px}
  #swapMessageModal .swap-modal-box.swap-message-box{
    width:min(96vw,560px);
    max-width:96vw;
    max-height:86vh;
    padding:15px 13px 13px;
    border-radius:18px;
  }
  #swapMessageTitle{font-size:1.12rem;max-width:none}
  #swapMessageModal .swap-message-meta{font-size:.78rem}
  #swapMessageModal .swap-message-list{max-height:36vh;padding:8px}
  #swapMessageModal .swap-message{max-width:92%;padding:10px 11px}
  #swapMessageModal .swap-field textarea{min-height:80px}
  #swapMessageModal .swap-record-actions .swap-button{flex:1 1 140px}
}

/* V80.2.5 — Property Swap uses the same true pure-white public canvas. */
html,
body.swap-page,
body.swap-page main,
body.swap-page .section,
body.swap-page section{
  background-color:#ffffff!important;
}
body.swap-page{
  background-image:none!important;
  background:#ffffff!important;
}
