
:root{
  --ground:#F5F7FA; --surface:#FFFFFF; --surface-2:#EEF1F6; --surface-3:#E4E9F1;
  --ink:#0F2340; --ink-soft:#3E5476; --muted:#6C7F9C;
  --line:#D9E0EA; --line-strong:#B9C5D6;
  --navy:#0C1E38; --navy-2:#132B4C; --on-navy:#E9EEF6;
  --gold:#9C7B1E; --gold-bright:#C79E33; --gold-wash:#FAF3DE;
  --good:#2A6E58; --good-wash:#E6F1EC;
  --warn:#8A6516; --warn-wash:#FBF2DC;
  --bad:#9E3524; --bad-wash:#FAEAE6;
  --info:#1F5C8B; --info-wash:#E4EFF7;
  --shadow:0 1px 2px rgba(15,35,64,.06),0 10px 28px -14px rgba(15,35,64,.22);
  --radius:4px;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --serif:Spectral,Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
}
html[data-dark="1"]{
  --ground:#08172B; --surface:#0E2340; --surface-2:#132B4C; --surface-3:#1A3762;
  --ink:#E9EFF7; --ink-soft:#B3C2D6; --muted:#7F92AC;
  --line:#1D3860; --line-strong:#2B4E7E;
  --navy:#061223; --navy-2:#0E2340;
  --gold:#D9B558; --gold-bright:#E7C978; --gold-wash:#231D0C;
  --good:#69C4A2; --good-wash:#0F2E27;
  --warn:#D9B558; --warn-wash:#2B2410;
  --bad:#E38472; --bad-wash:#331612;
  --info:#7FB6E0; --info-wash:#102A3F;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 34px -16px rgba(0,0,0,.75);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);margin:0;font-weight:600;text-wrap:balance}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
a{color:var(--gold)}
.hide{display:none!important}
.mono{font-family:var(--mono)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);cursor:pointer;font-weight:500;transition:.15s}
.btn:hover{border-color:var(--gold-bright);background:var(--surface-2)}
.btn:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}
.btn.p{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.p:hover{background:var(--navy-2);border-color:var(--gold-bright)}
.btn.g{background:var(--gold-bright);border-color:var(--gold-bright);color:#1B1503}
.btn.g:hover{filter:brightness(1.06)}
.btn.sm{padding:5px 10px;font-size:13px}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.danger:hover{background:var(--bad-wash)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.pill{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;padding:3px 8px;border-radius:2px;font-weight:500;white-space:nowrap}
.pill.ok{background:var(--good-wash);color:var(--good)}
.pill.wr{background:var(--warn-wash);color:var(--warn)}
.pill.bd{background:var(--bad-wash);color:var(--bad)}
.pill.nf{background:var(--info-wash);color:var(--info)}
.pill.gd{background:var(--gold-wash);color:var(--gold)}
.pill.mt{background:var(--surface-2);color:var(--muted)}
#login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,#16345c 0%,transparent 60%),radial-gradient(900px 500px at 100% 110%,#1a2c46 0%,transparent 55%),#0A1B31;padding:24px}
.login-card{width:100%;max-width:940px;display:grid;grid-template-columns:1.1fr .9fr;background:var(--surface);border:1px solid var(--line);box-shadow:0 40px 80px -30px rgba(0,0,0,.6);overflow:hidden}
.login-brand{background:#0B1D36;color:#E9EEF6;padding:38px 34px;display:flex;flex-direction:column;gap:14px;border-right:3px solid var(--gold-bright)}
.login-brand .mk{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gold-bright)}
.login-brand h1{font-size:31px;line-height:1.14;color:#fff}
.login-brand p{color:#A8BBD4;font-size:14.5px;margin:0}
.login-brand ul{margin:6px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:#B9CAE0}
.login-brand li{padding-left:18px;position:relative}
.login-brand li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:1px;background:var(--gold-bright)}
.login-form{padding:34px 32px;display:flex;flex-direction:column;gap:14px}
.who{display:flex;flex-direction:column;gap:8px}
.who-btn{display:flex;gap:12px;align-items:center;text-align:left;padding:11px 13px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);cursor:pointer;transition:.15s;width:100%}
.who-btn:hover{border-color:var(--gold-bright);background:var(--gold-wash)}
.who-btn.sel{border-color:var(--gold-bright);background:var(--gold-wash);box-shadow:inset 3px 0 0 var(--gold-bright)}
.who-av{width:34px;height:34px;border-radius:50%;background:var(--navy);color:var(--gold-bright);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;flex:0 0 auto}
.who-b b{display:block;font-size:14.5px}
.who-b span{font-size:12.5px;color:var(--muted)}
.pinrow{display:flex;gap:8px}
.pinrow input{flex:1;letter-spacing:.4em;font-family:var(--mono);padding:9px 11px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface)}
.err{color:var(--bad);font-size:13.5px;min-height:18px}
#app{min-height:100vh;display:flex;flex-direction:column}
:root{--lg-icon:url(/assets/logo-icon.png);--lg-word:url(/assets/logo-word.png)}
.lg{display:block;flex:0 0 auto;background-repeat:no-repeat;background-position:center;background-size:contain}
.lg-icon{background-image:var(--lg-icon);aspect-ratio:138/120}
.lg-word{background-image:var(--lg-word);aspect-ratio:745/64}
.topbar{background:var(--navy);color:var(--on-navy);border-bottom:2px solid var(--gold-bright);display:flex;align-items:center;gap:14px;padding:0 16px;height:56px;position:sticky;top:0;z-index:40}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:15px;color:#fff;white-space:nowrap}
.brand .lg-icon{height:34px}.brand .lg-word{height:15px}
.brand .bdiv{width:1px;height:19px;background:rgba(255,255,255,.24);margin:0 1px}
.brand #brandName{color:#C4D3E7;font-size:14.5px;letter-spacing:.01em}
.brand .bver{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:#8EA4C0;border:1px solid rgba(255,255,255,.2);padding:2px 6px;border-radius:2px}
.modeswitch{display:flex;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:3px;overflow:hidden}
.modeswitch button{background:none;border:none;color:#9FB4CE;padding:6px 13px;cursor:pointer;font-size:13px;font-weight:600}
.modeswitch button.on{background:var(--gold-bright);color:#12233d}
.topspacer{flex:1}
.topuser{display:flex;align-items:center;gap:9px;font-size:13.5px;color:#B9CAE0}
.topuser .av{width:28px;height:28px;border-radius:50%;background:var(--gold-bright);color:#12233d;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11.5px;font-weight:600}
.iconbtn{background:none;border:1px solid rgba(255,255,255,.18);color:#C6D6EA;height:30px;padding:0 9px;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:12.5px}
.iconbtn:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.body{display:flex;flex:1;min-height:0}
.side{width:214px;flex:0 0 214px;background:var(--surface);border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.side .cap{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:14px 10px 6px}
.nav{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:3px;cursor:pointer;color:var(--ink-soft);font-weight:500;font-size:14.5px;border:1px solid transparent;text-align:left;background:none;width:100%}
.nav:hover{background:var(--surface-2)}
.nav.on{background:var(--gold-wash);color:var(--ink);border-color:var(--gold-bright);font-weight:600}
.nav .ct{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.main{flex:1;min-width:0;padding:22px 26px 60px;overflow-x:hidden}
.page-h{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.page-h h2{font-size:26px}
.page-h .sub{color:var(--muted);font-size:14px}
.page-h .sp{flex:1}
.hr{height:1px;background:var(--line);margin:14px 0 20px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(156px,1fr));gap:14px}
.tile{background:var(--surface);border:1px solid var(--line);padding:14px 16px;border-radius:var(--radius)}
.tile .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tile .v{font-family:var(--serif);font-size:31px;line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums}
.tile .d{font-size:12.5px;color:var(--muted);margin-top:2px}
.tile.acc{border-left:3px solid var(--gold-bright)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-h{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.card-h h3{font-size:17px}
.card-h .sp{flex:1}
.card-b{padding:16px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--surface-2);white-space:nowrap}
tbody tr:hover{background:var(--surface-2)}
tbody tr:last-child td{border-bottom:none}
.rowlink{cursor:pointer}
.fs{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:16px}
.fs-h{padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);display:flex;align-items:center;gap:10px}
.fs-h b{font-size:14px}
.fs-b{padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(208px,1fr));gap:14px}
.f{display:flex;flex-direction:column;gap:5px;min-width:0}
.f.wide{grid-column:1/-1}
.f label{font-size:12.5px;font-weight:600;color:var(--ink-soft);display:flex;gap:6px;align-items:center}
.f input,.f select,.f textarea{padding:8px 10px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);width:100%}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--gold-bright);outline-offset:-1px;border-color:var(--gold-bright)}
.f .hint{font-size:12px;color:var(--muted)}
.f textarea{min-height:70px;resize:vertical}
.tagpriv{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:1px 5px;border-radius:2px;background:var(--bad-wash);color:var(--bad)}
.tagpub{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:1px 5px;border-radius:2px;background:var(--good-wash);color:var(--good)}
.tagtog{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:1px 5px;border-radius:2px;background:var(--gold-wash);color:var(--gold)}
.chk{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid var(--line);border-radius:3px;background:var(--surface-2)}
.chk input{width:16px;height:16px;margin-top:2px;flex:0 0 auto;accent-color:#9C7B1E}
.chk span{font-size:13px;color:var(--ink-soft)}
.chk b{display:block;font-size:13.5px;color:var(--ink)}
.photos{display:flex;flex-wrap:wrap;gap:9px}
.ph{width:96px;height:72px;border:1px solid var(--line-strong);border-radius:3px;object-fit:cover;background:var(--surface-2);display:block}
.phwrap{position:relative}
.phwrap button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:12px;line-height:1;color:var(--bad)}
.pub-hero{background:linear-gradient(115deg,#0A1B31 0%,#12294a 58%,#16345c 100%);color:#E9EEF6;border-bottom:2px solid var(--gold-bright);padding:22px 26px 20px}
.hero-in{max-width:none;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:34px;align-items:center}
.hero-l{min-width:0}
.pub-hero .mk{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--gold-bright);margin-bottom:7px}
.pub-hero h1{font-size:clamp(23px,2.5vw,33px);line-height:1.1;color:#fff;margin:0 0 7px;max-width:20ch}
.pub-hero h1 em{font-style:normal;color:var(--gold-bright)}
.pub-hero .dek{color:#AFC2DA;margin:0;font-size:14.5px;line-height:1.5;max-width:52ch}
.pub-cta{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px;align-items:center}
.callbox{display:inline-flex;align-items:center;gap:9px;background:var(--gold-bright);color:#12233d;border:1px solid var(--gold-bright);padding:8px 14px;border-radius:3px;text-decoration:none;font-weight:600}
.callbox .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;opacity:.75}
.callbox .n{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.02em}
.wabtn{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.3);color:#E9EEF6;padding:8px 14px;border-radius:3px;text-decoration:none;font-size:14px}
.wabtn:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.hero-stats{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.13)}
.hero-stats div{min-width:0}
.hero-stats b{display:block;font-family:var(--serif);font-size:21px;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums}
.hero-stats span{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:#8EA4C0}
.hero-r{display:flex;flex-direction:column;gap:9px;min-width:0}
.promise{display:flex;gap:11px;align-items:flex-start;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-left:2px solid var(--gold-bright);padding:9px 13px;border-radius:3px}
.promise i{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--gold-bright);padding-top:3px;letter-spacing:.08em}
.promise b{display:block;font-size:14px;color:#fff;font-weight:600;line-height:1.35}
.promise span{font-size:12.5px;color:#9DB2CC;line-height:1.4}
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;gap:16px}
  .pub-hero{padding:18px 16px 16px}
  .hero-r{flex-direction:row;overflow-x:auto;padding-bottom:2px}
  .promise{min-width:230px}
}
@media (max-width:560px){
  .hero-r{display:none}
  .hero-stats{gap:16px}
}
.fbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;align-items:start}
.msf{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden;box-shadow:var(--shadow)}
.msf-l{background:var(--navy);color:var(--gold-bright);border-bottom:2px solid var(--gold-bright);
  font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:8px 11px;display:flex;align-items:center;gap:7px}
.msf-n{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:#8EA4C0;letter-spacing:.06em}
.msf-l em{font-style:normal;background:var(--gold-bright);color:#12233d;border-radius:9px;padding:0 6px;font-size:9.5px;letter-spacing:.04em;margin-left:auto}
.msf-b{padding:10px 11px;display:flex;flex-direction:column;gap:7px;min-width:0}
.msf-b .msf-l{background:none;border:none;color:var(--muted);padding:0;font-weight:500;letter-spacing:.14em}
.msf-q{padding:6px 8px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface-2);font-size:13px;width:100%}
.msf-q:focus{outline:2px solid var(--gold-bright);outline-offset:-1px}
.msf-list{max-height:196px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding-right:2px}
.msf-list::-webkit-scrollbar{width:8px}
.msf-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}
.msf-i{display:flex;align-items:center;gap:7px;padding:3px 4px;border-radius:2px;cursor:pointer;font-size:13.5px;line-height:1.3}
.msf-i:hover{background:var(--surface-2)}
.msf-i input{width:14px;height:14px;flex:0 0 auto;accent-color:#9C7B1E;cursor:pointer}
.msf-i span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msf-i b{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:500}
.msf-i.off{opacity:.45;cursor:default}
.msf-i.off:hover{background:none}
.msf-sep{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 4px 3px;border-top:1px solid var(--line);margin-top:4px}
.msf-clear{background:none;border:none;color:var(--gold);font-size:12px;cursor:pointer;text-align:left;padding:0 4px;text-decoration:underline}
.minmax{display:flex;gap:6px}
.minmax input{width:100%;padding:6px 8px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface-2);font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.chip{background:var(--gold-wash);border:1px solid var(--gold-bright);color:var(--ink);border-radius:99px;padding:3px 10px;font-size:12.5px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.chip i{font-style:normal;color:var(--gold);font-weight:600}
.chip:hover{background:var(--surface-2)}
@media (max-width:600px){.msf-list{max-height:150px}}
.eq{display:flex;flex-direction:column;gap:12px}
.eq-sec{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.eq-sec.gold{border-color:var(--gold-bright)}
.eq-h{background:var(--surface-2);border-bottom:1px solid var(--line);padding:8px 12px;font-family:var(--mono);
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.eq-sec.gold .eq-h{background:var(--gold-wash);border-bottom-color:var(--gold-bright);color:var(--gold)}
.eq-grid{padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px}
.eq-grid .f.wide{grid-column:1/-1}
.eq-grid label em{font-style:normal;color:var(--bad)}
.opt{font-weight:400;font-size:11.5px;color:var(--muted);text-transform:none;letter-spacing:0;font-family:var(--sans)}
.eq-note{font-size:12px;color:var(--muted);margin:0;text-align:center}
.eq-prop{background:var(--navy);color:var(--on-navy);padding:9px 13px;border-radius:3px;margin-bottom:14px;font-size:13.5px;border-left:3px solid var(--gold-bright)}
.eq-prop .mono{color:var(--gold-bright)}
.locpick{display:flex;flex-wrap:wrap;gap:6px;max-height:104px;overflow-y:auto;padding:8px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface-2)}
.loctag{border:1px solid var(--line-strong);background:var(--surface);border-radius:99px;padding:3px 10px;font-size:12.5px;cursor:pointer;color:var(--ink-soft)}
.loctag:hover{border-color:var(--gold-bright)}
.loctag.on{background:var(--gold-bright);border-color:var(--gold-bright);color:#1B1503;font-weight:600}
.slbtn{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  background:rgba(8,20,38,.55);color:#fff;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2}
.slbtn:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.slbtn.on{background:var(--gold-bright);border-color:var(--gold-bright);color:#1B1503}
.pcard .qb{display:flex;gap:6px;margin-top:9px}
.pcard .qb button{flex:1;font-size:12.5px;padding:5px 8px;border:1px solid var(--line-strong);background:var(--surface);border-radius:3px;cursor:pointer;color:var(--ink)}
.pcard .qb button:hover{border-color:var(--gold-bright);background:var(--gold-wash)}
.sell-why{background:var(--navy);color:#DCE7F5;border-radius:var(--radius);padding:13px 16px;border-left:3px solid var(--gold-bright);margin-bottom:14px}
.sell-why b{display:block;color:var(--gold-bright);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}
.sell-why ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:5px;font-size:13.5px}
.sell-lead{font-size:14.5px;color:var(--ink-soft);margin:0 0 14px}
.sellbtn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--gold-bright);color:var(--gold-bright);
  background:rgba(255,255,255,.05);padding:6px 13px;border-radius:3px;cursor:pointer;font-size:13px;font-weight:600}
.sellbtn:hover{background:var(--gold-bright);color:#12233d}
.sellband{margin-top:34px;padding:22px;border:1px solid var(--gold-bright);background:var(--gold-wash);border-radius:var(--radius);
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:center;text-align:center}
.sellband h3{font-size:22px;margin:0}
.sellband p{margin:4px 0 0;color:var(--ink-soft);max-width:52ch;font-size:14.5px}
.memberbar{display:flex;align-items:center;gap:8px}
.mb-meter{display:flex;flex-direction:column;line-height:1.15;padding:3px 10px;border:1px solid rgba(255,255,255,.22);border-radius:3px;cursor:pointer}
.mb-meter b{font-family:var(--mono);font-size:12.5px;color:var(--gold-bright)}
.mb-meter span{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8EA4C0;font-family:var(--mono)}
.mb-meter.low b{color:#E38472}
.pcard.teaser{cursor:pointer}
.pcard.teaser .img img{filter:saturate(.75)}
.lockrow{display:flex;gap:8px;align-items:flex-start;background:var(--surface-2);border:1px dashed var(--line-strong);
  border-radius:3px;padding:8px 10px;font-size:12.5px;color:var(--muted);margin-top:4px}
.lockico{font-size:13px;line-height:1.2}
.viewstrip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--navy);color:#DCE7F5;
  border-left:3px solid var(--gold-bright);border-radius:3px;padding:9px 14px;margin-bottom:14px;font-size:13.5px}
.viewstrip b{color:var(--gold-bright)}
.viewstrip.low{border-left-color:#E38472}
.gal.wm{position:relative}
.gal.wm::after{content:attr(data-wm);position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-18deg);
  font-family:var(--mono);font-size:15px;letter-spacing:.14em;color:rgba(255,255,255,.42);text-shadow:0 1px 4px rgba(0,0,0,.45);
  pointer-events:none;white-space:nowrap}
.pk-status{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--gold-bright);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:20px;font-size:14.5px;color:var(--ink-soft);max-width:640px}
.pk-status.out{border-left-color:var(--bad)}
.pk-status b{color:var(--ink)}
.pk-meter{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin:9px 0}
.pk-meter span{display:block;height:100%;background:var(--gold-bright)}
.pk-head{margin-bottom:16px}
.pk-head h2{font-size:27px}
.pk-head p{color:var(--muted);margin:5px 0 0;font-size:14.5px}
.pkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(226px,1fr));gap:16px;align-items:stretch}
.pkcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 18px;
  display:flex;flex-direction:column;gap:9px;position:relative;box-shadow:var(--shadow)}
.pkcard.hi{border-color:var(--gold-bright);border-width:2px}
.pkcard.cur{outline:2px solid var(--good);outline-offset:2px}
.pkbadge{position:absolute;top:-11px;left:16px;background:var(--gold-bright);color:#1B1503;font-family:var(--mono);
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:99px;font-weight:600}
.pkname{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pkprice{font-family:var(--serif);font-size:31px;line-height:1.05;color:var(--ink)}
.pkprice span{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);margin-top:3px}
.pklimit{background:var(--gold-wash);color:var(--gold);border-radius:3px;padding:5px 9px;font-size:13px;text-align:center}
.pklimit b{font-size:15px}
.pkfeat{list-style:none;margin:4px 0 12px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-soft)}
.pkfeat li{padding-left:16px;position:relative}
.pkfeat li::before{content:"✓";position:absolute;left:0;color:var(--good);font-size:11px}
.pkcard .btn{margin-top:auto}
@keyframes flashring{0%,100%{box-shadow:0 0 0 0 rgba(199,158,51,0)}30%,70%{box-shadow:0 0 0 4px rgba(199,158,51,.55)}}
.flash{animation:flashring 1.1s ease-in-out 2;border-color:var(--gold-bright)!important}
.otp{border:1px solid var(--gold-bright);background:var(--gold-wash);border-radius:var(--radius);padding:12px 13px;display:flex;flex-direction:column;gap:9px}
.otp.done{border-color:var(--good);background:var(--good-wash)}
.otp-h{display:flex;gap:10px;align-items:flex-start}
.otp-ico{font-size:17px;line-height:1.1}
.otp-h b{display:block;font-size:14px;color:var(--ink)}
.otp-h span{font-size:12.5px;color:var(--ink-soft)}
.otp-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.otp-row input{width:110px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);
  font-family:var(--mono);font-size:18px;letter-spacing:.34em;text-align:center}
.otp-note{font-size:12.5px;color:var(--ink-soft)}
.otp-note.bad{color:var(--bad);font-weight:600}
.otp-resend{background:none;border:none;color:var(--gold);font-size:12.5px;cursor:pointer;text-decoration:underline}
.otp-resend[disabled]{color:var(--muted);cursor:default;text-decoration:none}
.otp-demo{font-size:12.5px;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--line-strong);border-radius:3px;padding:7px 10px}
.otp-fill{margin-left:8px;border:1px solid var(--gold-bright);background:var(--surface);color:var(--gold);
  border-radius:3px;padding:3px 9px;font-size:12px;cursor:pointer}
.otp-fill:hover{background:var(--gold-bright);color:#1B1503}
.otp-sub{display:block;margin-top:5px;font-size:11.5px;color:var(--muted)}
.submit-hint{font-size:12px;color:var(--muted);text-align:center;margin-top:-4px}
.otp-why{font-size:11.5px;color:var(--muted);border-top:1px dashed var(--line-strong);padding-top:7px}
.otp.done .otp-why{display:none}
.otp-code{font-family:var(--mono);font-size:15px;letter-spacing:.2em;color:var(--gold)}
.otp-ok{font-size:13.5px;color:var(--good);font-weight:600}
.pill.vf{background:var(--good-wash);color:var(--good)}
.cap{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--line-strong);
  border-radius:var(--radius);padding:9px 11px;flex-wrap:wrap}
.cap-q{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:150px}
.cap-q span{font-size:11.5px;color:var(--muted)}
.cap-q b{font-family:var(--mono);font-size:17px;color:var(--ink);letter-spacing:.06em}
.cap input{width:92px;padding:7px 9px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);font-family:var(--mono)}
.cap-new{border:1px solid var(--line-strong);background:var(--surface);border-radius:3px;width:32px;height:32px;cursor:pointer;color:var(--muted)}
.cap-new:hover{border-color:var(--gold-bright);color:var(--gold)}
.pubfoot{background:var(--navy);color:#B9CAE0;margin-top:40px;border-top:3px solid var(--gold-bright)}
.pf-in{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:28px;padding:30px 26px 22px;max-width:1320px}
.pf-brand{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.pf-brand .lg-icon{height:38px}.pf-brand .lg-word{height:17px}
.pf-col p{margin:0;font-size:13.5px;color:#8EA4C0;max-width:34ch}
.pf-col b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-bright);margin-bottom:9px}
.pf-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.pf-col a{color:#B9CAE0;text-decoration:none}
.pf-col a:hover{color:var(--gold-bright)}
.pf-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 26px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;color:#7E95B3}
.pf-admin{color:#7E95B3;text-decoration:none;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em}
.pf-admin:hover{color:var(--gold-bright)}
@media (max-width:820px){.pf-in{grid-template-columns:1fr 1fr;gap:20px;padding:24px 16px 18px}}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(274px,1fr));gap:18px;margin-top:18px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:.18s;display:flex;flex-direction:column;box-shadow:var(--shadow);text-align:left;padding:0;font:inherit;color:inherit}
.pcard:hover{transform:translateY(-2px);border-color:var(--gold-bright)}
.pcard .img{height:166px;background:var(--surface-3);position:relative;overflow:hidden}
.pcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .img .none{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-family:var(--mono);font-size:12px}
.pcard .badge{position:absolute;top:10px;left:10px}
.pcard .cnt{position:absolute;bottom:10px;right:10px;background:rgba(8,20,38,.78);color:#fff;font-family:var(--mono);font-size:11px;padding:3px 7px;border-radius:2px}
.pcard .bd{padding:13px 15px 15px;display:flex;flex-direction:column;gap:6px;flex:1}
.pcard h4{font-size:17.5px;line-height:1.25}
.pcard .loc{font-size:13.5px;color:var(--muted)}
.pcard .specs{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.spec{font-family:var(--mono);font-size:11.5px;background:var(--surface-2);border:1px solid var(--line);padding:2px 7px;border-radius:2px;color:var(--ink-soft)}
.pcard .ft{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line-strong);display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.pcard .ref{font-family:var(--mono);font-size:11px}
.mapbox{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px}
.mapbox svg{display:block;width:100%;height:auto;background:var(--surface-2);border-radius:3px}
.maplegend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:10px;align-items:center}
.dotk{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.det{display:grid;grid-template-columns:1.35fr .65fr;gap:22px;align-items:start}
.gal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.gal .big{width:100%;height:min(52vh,420px);object-fit:cover;display:block;background:var(--surface-3)}
.gal .nonebig{width:100%;height:260px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-family:var(--mono);font-size:13px;background:var(--surface-3)}
.gal .strip{display:flex;gap:8px;padding:10px;overflow-x:auto}
.gal .strip img{width:78px;height:58px;object-fit:cover;border:1px solid var(--line-strong);border-radius:2px;cursor:pointer}
.gal .strip img.on{border-color:var(--gold-bright);border-width:2px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;font-size:14.5px;margin:0}
.kv dt{color:var(--muted);font-size:12px;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;padding-top:3px}
.kv dd{margin:0;font-weight:500}
.contact{background:var(--navy);color:#E9EEF6;border-radius:var(--radius);padding:18px;border-top:3px solid var(--gold-bright)}
.contact .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--gold-bright)}
.contact .n{font-family:var(--mono);font-size:22px;color:#fff;margin:6px 0 4px;font-weight:600}
.contact p{color:#A8BBD4;font-size:13px;margin:0 0 12px}
.empty{padding:44px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface)}
.empty b{display:block;color:var(--ink);font-family:var(--serif);font-size:19px;margin-bottom:5px}
.toast{position:fixed;right:18px;bottom:18px;z-index:99;background:var(--navy);color:#fff;padding:12px 16px;border-radius:3px;border-left:3px solid var(--gold-bright);box-shadow:0 16px 40px -14px rgba(0,0,0,.6);font-size:14px;max-width:340px}
.modal{position:fixed;inset:0;background:rgba(6,14,28,.62);display:flex;align-items:center;justify-content:center;padding:20px;z-index:80}
.modal-c{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:600px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.privbox{font-family:var(--mono);font-size:12.5px;background:#08172B;color:#CFE0F2;padding:14px;border-radius:3px;overflow:auto;max-height:320px;white-space:pre-wrap;line-height:1.5}
.note{border:1px solid var(--line);border-left:3px solid var(--gold-bright);background:var(--surface);padding:13px 15px;border-radius:var(--radius);font-size:14px;color:var(--ink-soft)}
.note b{color:var(--ink)}
.note.bad{border-left-color:var(--bad)}
.note.good{border-left-color:var(--good)}
@media (max-width:960px){.det{grid-template-columns:1fr}}
@media (max-width:820px){
  .body{flex-direction:column}
  .side{width:auto;flex:none;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line);padding:8px}
  .side .cap{display:none}
  .nav{white-space:nowrap;width:auto}
  .nav .ct{margin-left:6px}
  .main{padding:16px 14px 60px}
  .login-card{grid-template-columns:1fr}
  .login-brand{border-right:none;border-bottom:3px solid var(--gold-bright)}
  .topbar{gap:8px;padding:0 10px}
  .brand #brandName,.brand .bdiv,.brand .bver{display:none}
  .brand .lg-icon{height:30px}.brand .lg-word{height:13px}
}

/* ==================================================================
   Additions for the live website (public pages + /admin)
   ================================================================== */
.wrap{max-width:1320px;margin:0 auto;padding:0 18px}
.sitehead{background:var(--navy);border-bottom:2px solid var(--gold-bright);position:sticky;top:0;z-index:40}
.sitehead .in{max-width:1320px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:0 18px;height:60px}
.sitehead a.brand{text-decoration:none}
.navlinks{display:flex;gap:4px;align-items:center;margin-left:8px}
.navlinks a{color:#B9CAE0;text-decoration:none;font-size:14px;padding:7px 11px;border-radius:3px}
.navlinks a:hover,.navlinks a.on{color:#fff;background:rgba(255,255,255,.09)}
.headsp{flex:1}
.headcta{display:flex;gap:8px;align-items:center}
.headcta .btn{padding:7px 12px;font-size:13.5px;white-space:nowrap}
.headcta .ghost{background:transparent;color:#D6E1F0;border-color:rgba(255,255,255,.28)}
.headcta .ghost:hover{background:rgba(255,255,255,.1);border-color:var(--gold-bright)}
.burger{display:none;background:none;border:1px solid rgba(255,255,255,.25);color:#fff;padding:6px 9px;border-radius:3px;cursor:pointer}
@media(max-width:1080px){
  .navlinks{display:none;position:absolute;top:60px;left:0;right:0;background:var(--navy-2);flex-direction:column;align-items:stretch;padding:8px;gap:2px;border-bottom:2px solid var(--gold-bright)}
  .navlinks.open{display:flex}
  .navlinks a{padding:11px 14px}
  .burger{display:block;order:9}
  .sitehead .in{gap:9px;padding:0 12px}
  .headcta .hidesm{display:none}
  .headcta .btn{padding:7px 10px;font-size:13px}
}
.page{padding:26px 0 60px}
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.card2{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:820px){.grid2,.grid3{grid-template-columns:1fr}}
.fld{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.fld label{font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.fld .hint{font-size:12px;color:var(--muted)}
.fld input,.fld select,.fld textarea{padding:9px 11px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--gold-bright);outline-offset:-1px;border-color:var(--gold-bright)}
.fld textarea{min-height:82px;resize:vertical}
.req::after{content:" *";color:var(--bad)}
.msg{padding:11px 14px;border-radius:3px;margin-bottom:16px;font-size:14px;border:1px solid}
.msg.ok{background:var(--good-wash);border-color:var(--good);color:var(--good)}
.msg.err{background:var(--bad-wash);border-color:var(--bad);color:var(--bad)}
.msg.info{background:var(--info-wash);border-color:var(--info);color:var(--info)}
.msg.warn{background:var(--warn-wash);border-color:var(--warn);color:var(--warn)}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface)}
table.tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface-2)}
table.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.tbl tr:hover td{background:var(--surface-2)}
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.empty{padding:38px 20px;text-align:center;color:var(--muted);border:none}
/* ---- admin shell ---- */
.adm{display:flex;min-height:100vh}
.admside{width:212px;flex:0 0 212px;background:var(--navy);color:#B9CAE0;padding:12px 0;display:flex;flex-direction:column;gap:2px}
.admside a{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#B9CAE0;text-decoration:none;padding:9px 16px;font-size:14px;border-left:3px solid transparent}
.admside a:hover{background:rgba(255,255,255,.06);color:#fff}
.admside a.on{background:rgba(199,158,51,.14);color:#fff;border-left-color:var(--gold-bright)}
.admside .sect{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#6C82A0;padding:14px 16px 5px;text-transform:uppercase}
.admside .ct{font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.12);padding:1px 7px;border-radius:9px}
.admmain{flex:1;min-width:0;background:var(--ground)}
.admbar{background:var(--surface);border-bottom:1px solid var(--line);padding:11px 20px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:30}
.admbody{padding:20px}
@media(max-width:900px){.adm{flex-direction:column}.admside{width:100%;flex:none;flex-direction:row;overflow-x:auto;padding:0}.admside .sect{display:none}.admside a{border-left:none;border-bottom:3px solid transparent;white-space:nowrap}.admside a.on{border-bottom-color:var(--gold-bright)}}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.kpi .k{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}
.kpi .k b{display:block;font-family:var(--mono);font-size:26px;color:var(--ink);line-height:1.1}
.kpi .k span{font-size:12px;color:var(--muted)}
.kpi .k.gold{border-left:3px solid var(--gold-bright)}
.kpi .k.warnk{border-left:3px solid var(--warn)}
/* ---- property cards on the public site ---- */
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:.15s}
.pcard:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.pcard .pc-ph{aspect-ratio:400/232;background:var(--surface-3);position:relative;overflow:hidden}
.pcard .pc-ph img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .pc-ph .tag{position:absolute;left:9px;top:9px}
/* The discount badge sits at the opposite corner. This selector has to be
   at least as specific as the rule above, or the inherited left:9px stays
   set alongside right:9px and the badge stretches across the whole card. */
.pcard .pc-ph .tag.below{left:auto;right:9px;top:9px}
/* The one money signal a visitor gets. Deliberately loud, deliberately
   vague: a percentage, never a figure. */
.tag.below{position:absolute;right:9px;top:9px;background:var(--gold-bright);color:var(--navy);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;padding:4px 9px;border-radius:2px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.22)}
.hero-claim{margin:10px 0 0;font-size:15px;color:#F2D07E;line-height:1.5}
.hero-claim b{color:var(--gold-bright);font-weight:700}
.askbox{display:flex;flex-direction:column;gap:3px;background:var(--gold-wash);border:1px solid var(--gold-bright);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}
.askbox .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.askbox b{font-family:var(--serif);font-size:27px;line-height:1.1;color:var(--ink)}
.askbox .n{font-size:13px;color:var(--ink-soft)}
.below-line{display:inline-block;background:var(--gold-wash);border:1px solid var(--gold-bright);
  color:var(--gold);font-weight:700;font-size:14px;padding:6px 12px;border-radius:3px;margin-bottom:12px}
.pcard .bd{padding:13px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.pcard h3{font-size:16px;line-height:1.25}
.pcard .loc{font-size:13px;color:var(--muted)}
.pcard .facts{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:12.5px;color:var(--ink-soft);font-family:var(--mono)}
.pcard .lock{margin-top:auto;padding:9px 11px;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:3px;font-size:12.5px;color:var(--ink-soft);display:flex;gap:7px}
.pcard .cta{margin-top:auto;padding-top:4px}
.pcard a.open{color:var(--gold);font-weight:600;font-size:13.5px;text-decoration:none}
.pcard a.open:hover{text-decoration:underline}
.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:18px}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{background:var(--gold-wash);border:1px solid var(--gold-bright);color:var(--gold);font-size:12px;padding:3px 9px;border-radius:12px;text-decoration:none}
.detail{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px}
@media(max-width:900px){.detail{grid-template-columns:1fr}}
.gal2 img{width:100%;border-radius:var(--radius);border:1px solid var(--line);display:block}
.thumbs{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}
.thumbs img{width:74px;height:54px;object-fit:cover;border:1px solid var(--line);border-radius:3px;cursor:pointer}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:16px 0}
.spec-grid div{background:var(--surface);padding:11px 13px}
.spec-grid b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.gate{background:var(--navy);color:#E9EEF6;border-radius:var(--radius);padding:22px;text-align:center}
.gate h3{color:#fff;margin-bottom:6px}
.gate p{color:#AFC2DA;font-size:14px;margin:0 0 14px}
.sticky-contact{position:sticky;top:78px}

/* ---- filter drop-downs with tick boxes ---- */
.msel{position:relative}
.msel>summary{list-style:none;cursor:pointer;padding:9px 11px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msel>summary::-webkit-details-marker{display:none}
.msel>summary::after{content:"\25BE";margin-left:auto;color:var(--muted);flex:0 0 auto}
.msel[open]>summary{border-color:var(--gold-bright)}
.msel.has>summary{border-color:var(--gold-bright);background:var(--gold-wash);color:var(--gold);font-weight:600}
/* Belt and braces: some Chrome versions still paint an absolutely
   positioned child of a CLOSED <details>. Hide it explicitly. */
.msel:not([open]) .panel{display:none!important}
.msel .panel{position:absolute;z-index:25;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line-strong);border-radius:3px;box-shadow:var(--shadow);max-height:270px;overflow:auto;padding:5px}
.msel .panel label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:3px;font-size:13.5px;cursor:pointer;font-weight:400;color:var(--ink);text-align:left;margin:0}
.msel .panel label>span:first-of-type{flex:1;text-align:left}
.msel .panel input[type=checkbox]{flex:0 0 auto;width:16px;height:16px;min-width:0;padding:0;margin:0;border-radius:2px;accent-color:var(--gold-bright)}
.msel .panel label:hover{background:var(--surface-2)}
.msel .panel .n{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.msel .panel .none{padding:10px 8px;color:var(--muted);font-size:13px}
@media(max-width:820px){.msel .panel{position:static;max-height:210px;margin-top:5px}}

/* ==================================================================
   Landing pages, guides and internal-link blocks
   ================================================================== */
.skip{position:absolute;left:-9999px;top:0;background:var(--gold-bright);color:#12233d;padding:10px 16px;z-index:100;text-decoration:none;font-weight:600}
.skip:focus{left:0}
main{display:block}
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{color:var(--gold)}
.crumb span[aria-current]{color:var(--ink-soft)}

.lp-head{margin-bottom:26px;max-width:72ch}
.lp-head h1{font-size:clamp(25px,3.2vw,34px);margin-bottom:10px}
.lede{font-size:17.5px;line-height:1.6;color:var(--ink-soft)}
.lp-meta{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-top:12px}
.lp-meta a{color:var(--gold);text-decoration:none}
.lp-meta a:hover{text-decoration:underline}

.lp-body{max-width:70ch;margin:34px 0;border-top:1px solid var(--line);padding-top:26px}
.lp-body h2{font-size:21px;margin:26px 0 8px}
.lp-body h2:first-child{margin-top:0}
.lp-body h3{font-size:17.5px;margin:20px 0 6px}
.lp-body p{color:var(--ink-soft);margin:0 0 14px}
.lp-body .closing{border-left:3px solid var(--gold-bright);padding-left:15px;color:var(--ink);font-size:16px}

.article{max-width:70ch;margin:0 auto}
.article h1{font-size:clamp(26px,3.4vw,36px);margin-bottom:14px}
.article h2{font-size:22px;margin:32px 0 10px}
.article h3{font-size:18px;margin:22px 0 6px}
.article p{color:var(--ink-soft);margin:0 0 16px}
.article .lede{font-size:19px;color:var(--ink);margin-bottom:26px}
.article strong{color:var(--ink)}
.artcta{margin-top:38px;background:var(--navy);color:#E9EEF6;border-radius:var(--radius);padding:24px 26px}
.artcta h2{color:#fff;margin:0 0 8px;font-size:20px}
.artcta p{color:#AFC2DA;margin:0 0 14px}
.artcta .btns{display:flex;gap:8px;flex-wrap:wrap;margin:0}

.linkgrid{margin:32px 0;border-top:1px solid var(--line);padding-top:22px}
.linkgrid h2{font-size:19px;margin-bottom:4px}
.linkgrid .sub{color:var(--muted);font-size:14px;margin:0 0 14px}
.linkgrid ul{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:7px 16px}
.linkgrid ul.tight{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:5px 14px}
.linkgrid li a{display:flex;align-items:baseline;gap:7px;color:var(--ink-soft);text-decoration:none;font-size:14.5px;padding:5px 0;border-bottom:1px solid transparent}
.linkgrid li a:hover{color:var(--gold);border-bottom-color:var(--line)}
.linkgrid.quiet li a{font-size:13.5px;color:var(--muted)}
.linkgrid.quiet li a:hover{color:var(--gold)}
.ct2{font-family:var(--mono);font-size:10.5px;background:var(--surface-2);color:var(--muted);padding:1px 6px;border-radius:9px}

.crosslinks{margin:34px 0 0;border-top:1px solid var(--line);padding-top:22px}
.crosslinks h2{font-size:18px;margin-bottom:12px}
.xl{display:flex;flex-wrap:wrap;gap:8px}
.xl a{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:9px 14px;
      font-size:14px;color:var(--ink-soft);text-decoration:none;box-shadow:var(--shadow)}
.xl a:hover{border-color:var(--gold-bright);color:var(--gold)}

.related{margin:38px 0 0;border-top:1px solid var(--line);padding-top:24px}
.related h2{font-size:20px;margin-bottom:14px}
.allink{margin-top:14px;font-size:14.5px}
.allink a{color:var(--gold);text-decoration:none;font-weight:600}
.allink a:hover{text-decoration:underline}
.typesum{margin-top:12px;font-size:13.5px;color:var(--muted);font-family:var(--mono)}

.faqlist details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:9px;box-shadow:var(--shadow)}
.faqlist summary{cursor:pointer;padding:14px 18px;list-style:none;display:flex;gap:10px;align-items:flex-start}
.faqlist summary::-webkit-details-marker{display:none}
.faqlist summary h2{font-size:16.5px;margin:0;flex:1;font-family:var(--sans);font-weight:600}
.faqlist summary::after{content:"+";font-family:var(--mono);color:var(--muted);font-size:18px;flex:0 0 auto}
.faqlist details[open] summary::after{content:"\2013"}
.faqlist details[open] summary{border-bottom:1px solid var(--line)}
.faqlist .in{padding:15px 18px 17px}
.faqlist .in p{margin:0;color:var(--ink-soft);font-size:15px}

.smgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px;margin:26px 0}
.smgrid h2{font-size:17px;margin-bottom:10px}
.smgrid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.smgrid a{color:var(--ink-soft);text-decoration:none;font-size:14.5px}
.smgrid a:hover{color:var(--gold)}

.pcard h3{font-size:16px;line-height:1.25;margin:0}
.pcard h3 a{color:var(--ink);text-decoration:none}
.pcard h3 a:hover{color:var(--gold)}
.pcard .bd p{margin:0}
a.pc-ph{display:block;text-decoration:none}
.wafloat{position:fixed;right:16px;bottom:16px;z-index:60;background:#25D366;color:#fff;width:54px;height:54px;
         border-radius:50%;display:flex;align-items:center;justify-content:center;
         box-shadow:0 8px 24px -6px rgba(0,0,0,.45);text-decoration:none}
.wafloat:hover{filter:brightness(1.05)}
address{font-style:normal}

/* ---- landing page: reading column beside a standing call-to-action ---- */
.lp-cols{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:38px;align-items:start;
         margin:34px 0;border-top:1px solid var(--line);padding-top:26px}
.lp-cols .lp-body{margin:0;border-top:none;padding-top:0;max-width:none}
/* Inside the two-column layout the column itself sets the width, so the
   article fills it and only the paragraphs stay at a readable measure.
   Without this the text was capped at 70ch and left a dead gap. */
.lp-cols .lp-body p{max-width:78ch}
.lp-aside{position:sticky;top:78px;display:flex;flex-direction:column;gap:12px}
.asidecard{background:var(--navy);color:#E9EEF6;border-radius:var(--radius);padding:20px 22px}
.asidecard h2{color:#fff;font-size:17px;margin:0 0 7px}
.asidecard p{color:#AFC2DA;font-size:14px;margin:0 0 13px}
.asidecard .callbox{width:100%;justify-content:center}
.asidecard .btn{width:100%;justify-content:center;margin-top:8px}
.asidecard .btn.wa{background:#25D366;border-color:#25D366;color:#fff}
.asidecard.sell{background:var(--gold-wash);border:1px solid var(--gold-bright)}
.asidecard.sell h2{color:var(--gold)}
.asidecard.sell p{color:var(--ink-soft)}
.asidecard.quiet{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.asidecard.quiet h2{color:var(--ink);font-size:15px}
.asidecard.quiet ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.asidecard.quiet a{color:var(--ink-soft);text-decoration:none;font-size:14px}
.asidecard.quiet a:hover{color:var(--gold)}
@media(max-width:980px){
  .lp-cols{grid-template-columns:1fr;gap:24px}
  .lp-aside{position:static}
}

/* ==================================================================
   The "add to home screen" bar. Sits above the WhatsApp button, is
   dismissible, and never appears once the site is already installed.
   ================================================================== */
#pwabar{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--navy);color:#E9EFF7;border:1px solid var(--gold-bright);
  border-radius:var(--radius);padding:13px 14px;
  box-shadow:0 18px 40px -12px rgba(0,0,0,.55);font-size:14.5px;line-height:1.45}
#pwabar #pwatext{flex:1 1 220px;min-width:0}
#pwabar button{font-family:inherit;cursor:pointer;border-radius:3px;border:0}
#pwabar #pwago{background:var(--gold-bright);color:var(--navy);font-weight:700;
  padding:10px 16px;font-size:14px;white-space:nowrap}
#pwabar #pwano{background:transparent;color:#8EA4C0;font-size:22px;line-height:1;
  padding:4px 8px;margin-left:auto}
#pwabar #pwano:hover{color:#fff}
@media (min-width:760px){
  #pwabar{left:auto;right:92px;max-width:430px}
}
@media (max-width:420px){
  #pwabar{font-size:13.5px;padding:11px 12px}
  #pwabar #pwago{width:100%;justify-content:center}
}

/* ==================================================================
   THE PHONE PASS
   ------------------------------------------------------------------
   Most people arrive here on a phone held in one hand, in daylight,
   with one thumb. Everything below exists so that the page they get
   is laid out for that, and not merely shrunk to fit it.

   It is last in the file on purpose: these rules are meant to have
   the final say, and putting them here means no earlier rule has to
   be hunted down and weakened.
   ================================================================== */

/* The install bar has to be able to close.
   #pwabar is an id selector, so its display:flex outranked the
   browser's own rule for the hidden attribute. The result: the bar
   appeared to everybody, whether the phone could install the site or
   not, and the × did nothing at all. This one line settles it. */
#pwabar[hidden]{display:none}

/* A link dressed as a button should not also be underlined. .btn never
   said so, so every anchor carrying it - Register free, Sell your
   property - came out underlined, on every screen. */
a.btn{text-decoration:none}

/* The floating WhatsApp button sits over the right-hand end of the
   copyright line, which is where "Team login" happens to be. Keep that
   corner clear. (The phone rules below set their own padding.) */
.pf-bar{padding-right:84px}

/* On a phone the bar runs the full width and the WhatsApp button sits
   in the same corner, so one buries the other. Lift the bar clear, and
   tuck the dismiss cross into the corner rather than letting it take a
   line of its own - the bar was half again as tall as it needed to be. */
@media (max-width:759px){
  #pwabar{bottom:84px;padding:12px 14px}
  #pwabar #pwatext{padding-right:30px}
  #pwabar #pwago{width:100%;justify-content:center;margin-top:2px}
  #pwabar #pwano{position:absolute;top:4px;right:5px;margin:0;padding:5px 10px;font-size:20px}
}

@media (max-width:560px){

  /* ---- the opening screen ---------------------------------------
     Shorter headline, tighter leading, and the three actions given
     honest full-width targets instead of three accidental widths. */
  .pub-hero{padding:16px 16px 15px}
  .pub-hero h1{font-size:26px;line-height:1.14;max-width:none;margin:0 0 8px}
  .pub-hero .dek{font-size:14px;line-height:1.45}
  .hero-claim{font-size:14px;margin-top:9px}

  .pub-cta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
  .pub-cta .callbox{grid-column:1/-1;justify-content:center;padding:13px 14px}
  .pub-cta .wabtn,.pub-cta .btn{width:100%;justify-content:center;text-align:center;padding:12px 10px}

  /* Four figures read as a block of four, not as a squeezed row. */
  .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;margin-top:14px;padding-top:12px}
  .hero-stats b{font-size:19px}

  /* ---- the search panel -----------------------------------------
     Two columns that are allowed to shrink, so no field is clipped;
     the search box and the button take the width they deserve. */
  .filters{padding:12px 13px}
  .frow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .frow .fld:last-child{grid-column:1/-1}
  .frow input,.frow select,.msel>summary{min-height:42px}
  .fgo .btn{width:100%;justify-content:center;padding:13px}

  /* ---- the listings ---------------------------------------------
     One property per row, photo a shade shallower so more of what
     the property actually is fits on the screen with it. */
  .plist{grid-template-columns:1fr;gap:14px}
  .pcard .pc-ph{aspect-ratio:400/208}
  .pcard .bd{padding:13px 15px 15px}
  .pcard h3{font-size:17px}
  .pcard .lock{font-size:12px;line-height:1.45}

  /* ---- the footer -----------------------------------------------
     Two columns on a phone was the mistake: long link text broke
     across three and four lines and the whole thing read as rubble.
     One column, each section separated by a hairline, every link a
     full-width row with its count parked on the right. */
  .pubfoot{margin-top:28px}
  .pf-in{grid-template-columns:1fr;gap:0;padding:22px 16px 4px}
  .pf-col{padding:15px 0;border-top:1px solid rgba(255,255,255,.1)}
  .pf-col:first-child{padding-top:0;border-top:none}
  .pf-col p{max-width:none;font-size:13.5px}
  .pf-col .callbox{display:flex;justify-content:center;margin-top:12px}
  .pf-col b{margin-bottom:8px}
  .pf-col ul{gap:0;font-size:14px}
  .pf-col li{border-bottom:1px solid rgba(255,255,255,.06)}
  .pf-col li:last-child{border-bottom:none}
  .pf-col li a{display:flex;align-items:center;gap:10px;padding:10px 0;line-height:1.35}
  .pf-col li a .ct2{margin-left:auto;flex:0 0 auto}

  /* The floating WhatsApp button would otherwise sit on the last
     line of the copyright, so the bar is given room beneath it. */
  .pf-bar{display:block;padding:14px 16px 74px;font-size:12px;line-height:1.6}
  .pf-bar .pf-admin{display:inline-block;margin:9px 16px 0 0}
}


/* ==================================================================
   THE SEARCH PANEL
   ------------------------------------------------------------------
   A tick-list that opens on top of the page will, sooner or later,
   open on top of the button the visitor is trying to press. That is
   exactly what was happening here: four lists left open covered the
   whole row beneath them, and "Show properties" sat underneath,
   unreachable, with tick boxes where the button appeared to be.

   Two changes settle it for good:

     1. The lists float only where there is nothing to cover. On a
        wide screen the search box and the button now stand in their
        own column to the right, out of the drop path entirely.
     2. Below 900px there is no room for that column, so the lists
        stop floating and simply push the page down instead. Nothing
        can be hidden by something that does not overlap.

   A small script in the footer keeps one list open at a time and
   closes it when you click away, which is what everyone expects a
   drop-down to do.
   ================================================================== */

.fwrap{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:18px;align-items:start}
.fgo{display:flex;flex-direction:column;gap:10px;border-left:1px solid var(--line);padding-left:18px}
.fgo .fld{margin:0}
.fgo .btn{width:100%;justify-content:center;padding:11px}

@media (max-width:900px){
  .fwrap{grid-template-columns:1fr;gap:12px}
  .fgo{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:12px}
  /* No floating lists where there is no clear column beside them. */
  .msel .panel{position:static;box-shadow:none;margin-top:6px;max-height:230px}
  /* An expanding list makes its row taller. Fields must hang from the
     top of the row, or the ones beside it slide down to meet its foot. */
  .frow{align-items:start}
}

/* The agent registration line in the footer. Quiet, but present on every
   page - it is both a legal disclosure and, for a nervous seller, one of
   the few things on the page that can be checked independently. */
.pf-bar .rera{color:#8EA4C0}
.pf-bar .rera b{color:#B9CAE0;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em}
.pf-bar .rera a{color:#7E95B3;text-decoration:underline}
@media (max-width:560px){ .pf-bar .rera{display:block;margin-top:8px;line-height:1.5} }

/* ==================================================================
   THE STAR AND THE HEART
   ------------------------------------------------------------------
   Favourites is the wide net; Shortlist is the short one. The two are
   deliberately different colours so a buyer can tell at a glance which
   list a property is already in, and deliberately quiet so they never
   compete with the discount badge, which is the thing that sells.
   ================================================================== */

.pcard .pc-media{position:relative}
.savebtns{position:absolute;right:9px;bottom:9px;display:flex;gap:7px;z-index:3}
.savebtns .savef{margin:0;display:block}
.savebtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  width:36px;height:36px;padding:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.93);border:1px solid rgba(12,30,56,.16);
  color:#5E738F;transition:.15s;box-shadow:0 2px 8px rgba(8,20,38,.22)}
.savebtn:hover{background:#fff;transform:translateY(-1px)}
.savebtn.k-fav.on{color:#C79E33;border-color:#C79E33}
.savebtn.k-short.on{color:#D6453F;border-color:#D6453F}
.savebtn.guest{text-decoration:none}

/* On the property page they stand as proper labelled buttons. */
.savebtns.onpage{position:static;margin:0 0 18px;gap:10px}
.savebtns.onpage .savebtn{width:auto;height:auto;border-radius:var(--radius);
  padding:9px 15px;font-size:14px;font-weight:600;font-family:inherit;
  background:var(--surface);border:1px solid var(--line-strong);box-shadow:none;color:var(--ink-soft)}
.savebtns.onpage .savebtn:hover{border-color:var(--gold-bright);transform:none}
.savebtns.onpage .savebtn.k-fav.on{color:var(--gold);border-color:var(--gold-bright);background:var(--gold-wash)}
.savebtns.onpage .savebtn.k-short.on{color:#B8332D;border-color:#D6453F;background:#FDF1F0}

/* The two counters in the site header. */
.savelink{display:inline-flex;align-items:center;gap:6px;padding:6px 10px}
.savelink b{font-family:var(--mono);font-size:11.5px;font-weight:600}

/* The tabs on the saved page. */
.savedtabs{display:flex;gap:10px;margin:0 0 18px;flex-wrap:wrap}
.savedtab{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:var(--radius);
  background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-soft);
  text-decoration:none;font-size:14.5px;font-weight:600}
.savedtab b{font-family:var(--mono);font-size:12px;background:var(--surface-2);
  color:var(--muted);padding:1px 8px;border-radius:10px;font-weight:600}
.savedtab:hover{border-color:var(--gold-bright)}
.savedtab.on{background:var(--navy);border-color:var(--navy);color:#fff}
.savedtab.on b{background:rgba(255,255,255,.16);color:#E9EFF7}

@media (max-width:560px){
  .savebtns.onpage{flex-direction:column;align-items:stretch}
  .savebtns.onpage .savebtn{width:100%;justify-content:center}
  .savedtab{flex:1;justify-content:center;padding:11px 10px}
}

/* ==================================================================
   THE SELLER FILE — admin only
   ------------------------------------------------------------------
   A page somebody reads with a telephone against their ear. So: the
   code large enough to read across a desk, the two buttons that get
   used most at the top, and a history that reads downwards like a
   diary rather than sideways like a spreadsheet.
   ================================================================== */

.crmtop{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.crmid{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.crmcode{font-size:19px;letter-spacing:.04em;color:var(--gold)}
.crmname{font-family:var(--serif);font-size:19px}
.crmacts{display:flex;gap:7px;flex-wrap:wrap}

.crmh{font-size:16px;margin:0 0 4px;display:flex;align-items:center;gap:8px}
.crmcount{font-family:var(--mono);font-size:11.5px;color:var(--muted);background:var(--surface-2);
  border-radius:20px;padding:2px 9px}
.crmp{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 12px}
.crmgrid{align-items:start;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}

.wabox{margin-top:14px;background:var(--surface-2)}
.wabox h3{font-size:16px;margin:0 0 4px}
.wabox p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 12px;max-width:74ch}
.walist{display:flex;gap:8px;flex-wrap:wrap}
.btn.wa{background:#25D366;border-color:#25D366;color:#fff}
.btn.wa:hover{background:#1FB757;border-color:#1FB757;color:#fff}
.btn.sm.wa{margin-top:5px;padding:3px 9px;font-size:11.5px}

/* the facts, as a two-column list rather than a form */
.crmfacts{width:100%;border-collapse:collapse}
.crmfacts th{width:38%;text-align:left;vertical-align:top;font-weight:500;color:var(--muted);
  font-size:12.5px;padding:5px 10px 5px 0;border:none}
.crmfacts td{font-size:14px;padding:5px 0;border:none;border-bottom:1px solid var(--line)}
.crmfacts tr:last-child td{border-bottom:none}
.crmquote{margin:12px 0 0;font-size:13.5px;line-height:1.65;color:var(--ink-soft);
  background:var(--surface-2);padding:10px 12px;border-radius:3px}

/* the history — a diary, newest at the top */
.crmlog{list-style:none;margin:0;padding:0}
.crmlog li{padding:11px 0;border-top:1px solid var(--line)}
.crmlog li:first-child{border-top:none;padding-top:2px}
.crmlog-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13.5px}
.crmlog-w{color:var(--muted);font-size:12px;margin-left:auto}
.crmlog p{margin:6px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-soft)}

/* the papers */
.crmdocs{width:100%;border-collapse:collapse}
.crmdocs td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:13.5px}
.crmdocs tr:last-child td{border-bottom:none}
.crmdoc-m{color:var(--muted);font-size:12px;margin-top:2px}

/* finding one seller again */
.crmfind{margin-bottom:12px}
.crmfind-top{display:flex;gap:8px;align-items:center}
.crmfind-top input{flex:1;font-size:16px;padding:10px 12px}
.crmfind-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.crmfind-row select{font-size:13px;padding:6px 9px}
.crmchk{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-soft)}
.crmchk input{width:auto;margin:0}

.crmtabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.crmtab{font-size:12.5px;padding:5px 11px;border:1px solid var(--line);border-radius:20px;
  color:var(--ink-soft);text-decoration:none;background:var(--surface)}
.crmtab b{font-family:var(--mono);color:var(--muted);margin-left:5px}
.crmtab:hover{border-color:var(--gold-bright)}
.crmtab.on{background:var(--gold-wash);border-color:var(--gold-bright);color:var(--gold)}
.crmtab.on b{color:var(--gold)}

.crmlist{width:100%}
.crmlist td{vertical-align:top}
.crmsub{color:var(--muted);font-size:12px;line-height:1.5}
.crmlist tr.overdue{background:var(--gold-wash)}

@media (max-width:900px){
  .crmgrid{grid-template-columns:1fr}
  .crmtop{align-items:flex-start}
  .crmfind-top{flex-wrap:wrap}
  .crmfind-top input{min-width:100%}
  .crmlog-w{margin-left:0;width:100%}
}

/* the short link the office hands out -------------------------------- */
.linkbox{margin-bottom:12px;background:var(--gold-wash);border:1px solid var(--gold-bright)}
.linkbox h3{font-size:16px;margin:0 0 4px}
.linkbox p{color:var(--ink-soft);font-size:13.5px;line-height:1.65;margin:0 0 12px;max-width:80ch}
.linkrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkrow input{flex:1;min-width:240px;font-family:var(--mono);font-size:13.5px;background:var(--surface);
  border:1px solid var(--line-strong);border-radius:3px;padding:10px 12px;color:var(--ink)}
.linkdone{margin:10px 0 0 !important;font-size:12.5px !important;color:var(--muted) !important}
@media (max-width:640px){ .linkrow input{min-width:100%} .linkrow .btn{width:100%;text-align:center} }

/* the seller list has to survive a narrow laptop: the code and the
   money are the two things that must never break across lines */
.crmlist td:first-child,
.crmlist td.num{white-space:nowrap}
.crmlist td.num .crmsub{white-space:normal}

/* the WhatsApp mark — who has already been messaged --------------------
   Small and quiet. On a list of sixteen it is scanned, not read, so it
   has to survive being glanced at: a tick, two words, nothing else. */
.warow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
.wasent{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;
  color:#157A3C;background:#E8F5EC;border:1px solid #BEE3CB;border-radius:20px;padding:2px 9px;
  white-space:nowrap}
.wasent svg{flex:0 0 auto}
.waundo{display:inline}
.waundo button{background:none;border:none;padding:0;font:inherit;font-size:11px;
  color:var(--muted);text-decoration:underline;cursor:pointer}
.waundo button:hover{color:var(--ink)}
.btn.sm.wa.again{background:var(--surface);border-color:#BEE3CB;color:#157A3C}
.btn.sm.wa.again:hover{background:#E8F5EC;border-color:#157A3C;color:#157A3C}

/* the seller list on a phone ------------------------------------------
   A table with eight columns on a 390px screen is a table you scroll
   sideways, and sideways is where the WhatsApp button and its tick were
   both hiding. Working down a list of sixteen leads on a phone is the
   main way this page gets used, so below 760px every row becomes a
   small card instead. */
@media (max-width:760px){
  .crmlist thead{display:none}
  .crmlist, .crmlist tbody, .crmlist tr, .crmlist td{display:block;width:100%}
  .crmlist tr{border-bottom:1px solid var(--line);padding:13px 2px 15px}
  .crmlist tr:last-child{border-bottom:none}
  .crmlist td{border:none;padding:2px 0;white-space:normal}
  .crmlist td:first-child{white-space:normal;margin-bottom:2px}
  .crmlist td[data-l]::before{content:attr(data-l) " · ";color:var(--muted);font-size:11.5px;
    font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
  .crmlist td[data-l] > div{display:inline}
  .crmlist td[data-l] > div::before{content:" · ";color:var(--muted)}
  .crmlist td.num{text-align:left}
  .crmlist td:last-child{margin-top:9px}
  .crmlist td:last-child .btn{display:block;text-align:center}
  .crmlist .warow{margin-top:7px}
  .crmlist .btn.sm.wa{padding:7px 16px;font-size:13px}
}

/* ==================================================================
   THE PROPERTY CARD, SECOND VERSION
   ------------------------------------------------------------------
   The first version put a grey locked panel on every card. Six cards
   meant the same sentence six times, all of it about what the visitor
   could not have, and a page that repeats a refusal reads as empty
   however much stock is on it.

   What replaces it is the opposite: a line in Sunil's own words, and
   chips that are facts. They differ from card to card because the
   properties differ, and a visitor can check every one of them. The
   lock is still there — it still does its job — but as one quiet line
   rather than the loudest thing in the frame.
   ================================================================== */

.pcard .pline{font-family:var(--serif);font-size:14.5px;line-height:1.45;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.pchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:1px}
.pchip{font-size:11.5px;line-height:1.5;padding:2px 9px;border-radius:20px;white-space:nowrap;
  border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--surface-2)}
.pchip.ok{color:#157A3C;background:#E8F5EC;border-color:#BEE3CB;font-weight:600}
.pchip.new{color:var(--gold);background:var(--gold-wash);border-color:var(--gold-bright)}

.pcard .lockline{margin-top:auto;font-size:12px;color:var(--muted);padding-top:6px}
.pcard .facts{margin-top:auto}

/* Fewer, larger cards. A curated list of six looks deliberate in two
   rows of three and looks like leftovers in a row of four plus two. */
@media (min-width:1180px){
  .plist{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ==================================================================
   THE SHOP WINDOW
   ------------------------------------------------------------------
   Sunil's point, and he was right: three rows of large cards is a long
   scroll before a visitor reaches anything else. So the card gets
   smaller and the window gets wider — four across instead of three.

   The count follows the layout rather than fighting it. Eight is two
   clean rows at four columns; where the screen only fits three or two
   columns, the last items step out of the window rather than leave an
   orphan row hanging. Nothing is lost by that: "See all" sits directly
   underneath, and everything trimmed here is one tap away.
   ================================================================== */

/* a shorter photograph and a tighter body: about a third less height */
.pcard .pc-ph{aspect-ratio:400/208}
.pcard .bd{padding:11px 13px 12px;gap:4px}
.pcard h3{font-size:15px}
.pcard .loc{font-size:12.5px}
.pcard .pline{font-size:13px;line-height:1.4}
.pchip{font-size:11px;padding:1px 8px}
.pcard .lockline{font-size:11.5px;padding-top:4px}
.pcard a.open{font-size:13px}

@media (min-width:1280px){ .plist{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px} }

/* Below four columns the window shows fewer, so a row is never left
   half empty. These rules touch .window only — the full catalogue
   underneath still shows every property it was given. */
@media (max-width:1279px){ .plist.window > :nth-child(n+7){display:none} }
@media (max-width:659px){  .plist.window > :nth-child(n+5){display:none} }

.seeall{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);
  display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.seeall span{color:var(--muted);font-size:13px;line-height:1.55;flex:1;min-width:220px}

/* the toggle in the admin list */
.btn.sm.inwin{background:var(--gold-wash);border-color:var(--gold-bright);color:var(--gold);font-weight:600}
.btn.sm.inwin:hover{background:var(--surface);border-color:var(--line-strong);color:var(--ink-soft)}

/* Only ONE thing in a card may claim the leftover space, or the flex
   box splits it between them and the "See this property" links end up
   at four different heights across a row — which is exactly what made
   the grid look untidy even though the cards themselves were equal.
   The link is the thing that should sit on the floor. */
/* The `.pcard .bd p{margin:0}` rule further up is one element more
   specific than a plain `.cta`, so it has been quietly winning and the
   auto margin never applied. Matching the element puts it right. */
.pcard .bd p.lockline, .pcard .bd p.facts{margin-top:0}
.pcard .bd p.cta{margin-top:auto;padding-top:8px}

/* "+ Add a seller" always at the top of the sellers list */
.addtop{display:flex;gap:8px;justify-content:flex-end;margin:0 0 12px}
.addtop .btn{padding:10px 18px;font-size:14.5px}
@media (max-width:659px){.addtop{justify-content:stretch}.addtop .btn{flex:1;justify-content:center}}

/* ================= Calculators ================= */
.calchead{max-width:780px;margin:6px 0 18px}
.calchead h1{font-size:clamp(26px,3.4vw,36px);margin-bottom:8px}
.calchead .lede{margin:0}
.calcbox{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.calcin{padding:22px 24px;display:flex;flex-direction:column;gap:20px}
.cf label,.cf .lbl{display:block;font-weight:600;font-size:14px;margin-bottom:7px;color:var(--ink)}
.cf.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cfrow{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.cfrow:focus-within{border-color:var(--gold-bright);box-shadow:0 0 0 3px var(--gold-wash)}
.cfrow input{flex:1;min-width:0;border:0;outline:0;padding:11px 12px;font-family:var(--mono);font-size:17px;background:transparent}
.cfrow .pre,.cfrow .post{padding:0 12px;color:var(--muted);font-family:var(--mono);background:var(--surface-2);align-self:stretch;display:flex;align-items:center}
.cf input[type=range]{width:100%;margin:10px 0 0;accent-color:var(--gold-bright)}
.cf select{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);font-size:15px}
.cf .words{display:block;margin-top:4px;color:var(--gold);font-weight:600;font-size:13.5px}
.cf .hintc{display:block;margin-top:5px;color:var(--muted);font-size:12.5px}
.seg{display:flex;flex-direction:column;gap:7px}
.seg label{display:flex;gap:9px;align-items:center;font-weight:500;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;margin:0}
.seg label:has(input:checked){border-color:var(--gold-bright);background:var(--gold-wash)}
.seg input{accent-color:var(--gold-bright);margin:0}
.calcout{background:var(--navy);color:var(--on-navy);padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.calcout .big .k{display:block;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#9FB3CE}
.calcout .big b{display:block;font-size:clamp(30px,4.2vw,42px);color:#fff;line-height:1.15;margin-top:4px}
.calcout .rows{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.12)}
.calcout .rows>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14.5px}
.calcout .rows>div span{color:#B9C9DE}
.calcout .rows>div span em{font-style:normal;color:var(--gold-bright);font-family:var(--mono);margin-left:4px}
.calcout .rows>div b{color:#fff;white-space:nowrap}
.calcout .rows>div.tot b{color:var(--gold-bright);font-size:16px}
.calcout .split .bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#C9A24A}
.calcout .split .bar i.p{background:#6FA8DC;display:block;height:100%}
.calcout .split .leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:13.5px;color:#B9C9DE}
.calcout .split .leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.calcout .split .leg i.p{background:#6FA8DC}.calcout .split .leg i.i{background:#C9A24A}
.calcout .split .leg b{color:#fff;margin-left:4px}
.calcnote{font-size:12.5px;color:#9FB3CE;margin:0;line-height:1.55}
.btn.wide{justify-content:center;width:100%;padding:12px 14px;margin-top:auto;text-align:center}
.calcsched{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.calcsched summary{cursor:pointer;padding:14px 18px;font-weight:600}
.calctable{width:100%;border-collapse:collapse;font-size:14px}
.calctable th,.calctable td{padding:8px 14px;text-align:right;border-top:1px solid var(--line)}
.calctable th:first-child,.calctable td:first-child{text-align:left}
.calctable th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-2)}
.calcbelow{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;margin-top:34px;align-items:start}
.calcbelow .article{max-width:none;margin:0}
.calcfaq h2{margin-top:0}
.calcfaq .faqlist summary h3{font-size:16.5px;margin:0;flex:1;font-family:var(--sans);font-weight:600}
.calcdisc{font-size:13px;color:var(--muted);margin-top:18px}
.calcside{display:flex;flex-direction:column;gap:14px}
.calcside h3{font-size:17px;margin-bottom:8px}
.calcside p{font-size:14px;color:var(--ink-soft);margin:0 0 12px}
.calclinks{list-style:none;margin:0;padding:0}
.calclinks li+li{border-top:1px solid var(--line)}
.calclinks a{display:block;padding:10px 0;text-decoration:none;color:var(--ink)}
.calclinks a b{display:block;color:var(--gold)}
.calclinks a span{font-size:13px;color:var(--muted)}
.calcsell{border-color:var(--gold-bright);background:var(--gold-wash)}
.calchub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.calccard{display:flex;flex-direction:column;gap:8px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:.15s}
.calccard:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.calccard .ic{font-family:var(--mono);font-weight:600;font-size:18px;color:var(--gold);background:var(--gold-wash);width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.calccard h2{font-size:21px}
.calccard p{margin:0;color:var(--ink-soft);font-size:14.5px;flex:1}
.calccard .go{color:var(--gold);font-weight:600;font-size:14px}
.calcta{margin-top:26px}
.calcpromo{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:var(--radius);font-size:14px;color:var(--ink-soft)}
.calcpromo a{font-weight:600}
@media (max-width:959px){
  .calcbox{grid-template-columns:1fr}
  .calcbelow{grid-template-columns:1fr}
  .calchub{grid-template-columns:1fr}
}
@media (max-width:659px){
  .calcin,.calcout{padding:18px 16px}
  .cf.two{grid-template-columns:1fr 1fr;gap:10px}
}

/* Header with six menu items: keep every item on one line. On laptop
   widths the phone number moves out of the header (it is still in the
   footer, on every property and on the WhatsApp button). */
.navlinks a{white-space:nowrap}
@media (min-width:1081px) and (max-width:1600px){
  .navlinks a{padding:7px 8px;font-size:13.5px}
  .headcta a[href^="tel:"]{display:none}
}
@media (min-width:1081px) and (max-width:1260px){
  .navlinks{margin-left:2px;gap:0}
  .navlinks a{padding:7px 6px;font-size:13px}
  .headcta a[href="/sign-in/"]{display:none}
}
/* the calculators menu item, with its little FREE tag */
.navlinks a.navcalc{color:#fff;display:inline-flex;align-items:center;gap:6px}
.navlinks a.navcalc .free{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;background:var(--gold-bright);color:#1B1503;padding:2px 5px;border-radius:3px;line-height:1.2}

/* ================= Free price check ================= */
.pcgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:34px;align-items:start}
.pcintro .mk{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold);margin-bottom:10px}
.pcintro h1{font-size:clamp(28px,3.8vw,40px);margin-bottom:12px}
.pcwhy{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.pcwhy li{display:flex;flex-direction:column;gap:2px;padding-left:16px;border-left:3px solid var(--gold-bright)}
.pcwhy li b{font-size:15px}
.pcwhy li span{color:var(--ink-soft);font-size:14px}
.pcalt{margin-top:22px;color:var(--muted);font-size:14px}
.pcform{position:sticky;top:76px}
.pcform h2{font-size:15px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:4px 0 12px}
.pcform h2+.pcrow,.pcform h2+.fld{margin-top:0}
.pcform .fld+h2{margin-top:10px}
.pcrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pcrow.three{grid-template-columns:1.2fr .8fr 1.2fr}
.pcform label small{font-weight:400;color:var(--muted)}
.pcform .hp{position:absolute;left:-9999px;top:-9999px}
.pchint{font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin:-6px 0 14px;padding:8px 10px;background:var(--gold-wash);border-left:3px solid var(--gold-bright);border-radius:0 3px 3px 0}
.pchint b{color:var(--ink)}
.pcmore{margin:0 0 16px;border:1px dashed var(--line-strong);border-radius:3px;padding:10px 12px}
.pcmore summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--ink-soft)}
.pcmore .fld{margin-bottom:0}
.pcfine{font-size:12.5px;color:var(--muted);margin:12px 0 0;text-align:center;line-height:1.5}
.pcfaq{margin-top:44px}
.pcfaq h2{margin-top:0}
.pcfaq .faqlist summary h3{font-size:16.5px;margin:0;flex:1;font-family:var(--sans);font-weight:600}
.pcdone{max-width:640px;margin:10px auto 0;text-align:center;padding:36px 28px}
.pcdone .tick{width:58px;height:58px;border-radius:50%;background:var(--good-wash);color:var(--good);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.pcdone h1{font-size:clamp(24px,3vw,32px);margin-bottom:10px}
.pcdone .btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
@media (max-width:900px){.pcgrid{grid-template-columns:1fr}.pcform{position:static}}
@media (max-width:520px){.pcrow,.pcrow.three{grid-template-columns:1fr}}
.pcstrip{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:14px 18px;margin:0 0 18px;background:var(--gold-wash);border:1px solid var(--gold-bright);border-radius:var(--radius);text-decoration:none;color:var(--ink)}
.pcstrip .t{font-size:14.5px;line-height:1.5}
.pcstrip .btn{white-space:nowrap}
.pcnudge{font-size:14px;color:var(--ink-soft);margin:0 0 14px}
@media (max-width:659px){.pcstrip{flex-direction:column;align-items:stretch;text-align:center}}

/* free tools under the article on home / city / locality pages */
.lptools{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.lptools h2{font-size:21px;margin:0 0 14px}
.lptools .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lptools .t{display:flex;flex-direction:column;gap:5px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:.15s}
.lptools .t:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.lptools .t b{font-size:16px;font-family:var(--serif)}
.lptools .t span{font-size:13.5px;color:var(--ink-soft);line-height:1.5;flex:1}
.lptools .t i{font-style:normal;font-size:13.5px;font-weight:600;color:var(--gold);margin-top:4px}
.lptools .t.sell{background:var(--gold-wash);border-color:var(--gold-bright)}
@media (max-width:659px){.lptools .grid{grid-template-columns:1fr}}

/* ================= Marketing list (admin) ================= */
.mktiles{margin-bottom:14px}
.mktiles a.tile{text-decoration:none;color:inherit}
.mktiles a.tile:hover{border-color:var(--gold-bright)}
.mkpick{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:14px 18px;border-left:3px solid #25D366}
.mkpick select{padding:8px 10px;font-size:15px;font-weight:600;min-width:260px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface)}
.mkpath{font-size:12px;color:var(--muted)}
.mkbulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.mkbulk select,.mkbulk input{padding:6px 9px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);font-size:13.5px}
.mklist tr.hot td{background:var(--gold-wash)}
.mkchips{max-width:260px}
.mkchip{display:inline-block;font-size:11.5px;padding:2px 7px;border-radius:10px;margin:0 3px 3px 0;white-space:nowrap;border:1px solid var(--line)}
.mkchip.sent{background:var(--surface-2);color:var(--ink-soft)}
.mkchip.open{background:var(--good-wash);color:var(--good);border-color:var(--good)}
.mkchip.lead{background:var(--gold-wash);color:var(--gold);border-color:var(--gold-bright);font-weight:600}
.mksend .row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line)}
.mksend .row:first-child{border-top:0;padding-top:0}
.mksend .t{flex:1;min-width:0}
.mksend .t>b{display:block}
.mksend details summary{cursor:pointer;font-size:12.5px;color:var(--gold);margin-top:4px}
.mkmsg{white-space:pre-wrap;font-family:var(--sans);font-size:13px;background:#E7F8EE;color:#0F2340;border-radius:8px;padding:10px 12px;margin:8px 0 0;line-height:1.5}
.mklog{list-style:none;margin:0;padding:0}
.mklog li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.mklog li:first-child{border-top:0}
.mklog .ic{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:12px}
.mklog li.k-opened .ic{background:var(--good-wash);color:var(--good)}
.mklog li.k-lead .ic{background:var(--gold-wash);color:var(--gold)}
.mklog li.k-sent .ic{background:#E7F8EE;color:#128C4A}
.mklog .n{font-size:13.5px;color:var(--ink-soft);margin:3px 0}
@media (max-width:820px){
  .mklist thead{display:none}
  .mklist tr{display:block;border-bottom:1px solid var(--line);padding:10px 4px}
  .mklist td{display:block;border:0;padding:3px 6px}
  .mklist td[data-l]::before{content:attr(data-l)': ';font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
}
/* sector / sub-sector chip — the filing label on every marketing contact */
.mksector{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:3px 8px;border-radius:3px;background:var(--info-wash);color:var(--info);border:1px solid var(--info);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.mksector.sm{font-weight:500;background:var(--surface-2);color:var(--ink-soft);border-color:var(--line);margin:0 2px 3px 0}
.mksector b{font-weight:700}

/* ================= Price worksheet ================= */
.pricein{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pricein .fld{margin-bottom:6px}
.priceadj{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;margin-top:6px}
.priceadj .crmchk{font-size:13.5px}
.priceout{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding:14px 16px;background:var(--navy);border-radius:var(--radius);color:#E9EEF6}
.priceout>div{display:flex;flex-direction:column}
.priceout span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#9FB3CE}
.priceout b{font-size:20px;line-height:1.2;margin:3px 0 1px;color:#fff;font-variant-numeric:tabular-nums}
.priceout i{font-style:normal;font-size:12px;color:#B9C9DE}
.priceout .q b{color:var(--gold-bright)}
.pricebox .mkmsg{margin-top:8px}
@media (max-width:659px){.pricein{grid-template-columns:1fr 1fr}.priceadj,.priceout{grid-template-columns:1fr}}

/* ---- public property-rate pages ---- */
.ratespage .mk{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--gold);margin-bottom:8px}
.ratespage h1{font-size:clamp(26px,3.4vw,38px);margin-bottom:10px}
.ratespage h2{font-size:22px;margin:34px 0 10px}
.ratespage .lede{max-width:760px}
.ratestrip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 16px}
.ratestrip .rt{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 18px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.ratestrip .rt span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ratestrip .rt b{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);line-height:1.15;color:var(--ink)}
.ratestrip .rt i{font-style:normal;font-size:13px;color:var(--ink-soft);line-height:1.5}
.ratestrip .rt.q{background:var(--gold-wash);border-color:var(--gold-bright)}
.ratestrip .rt.q b{color:var(--gold)}
.ind{display:inline-block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-strong);border-radius:3px;padding:1px 6px;vertical-align:middle}
.ratestrip .rt .ind{position:absolute;top:12px;right:12px}
.ratescta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;background:var(--gold-wash);border-color:var(--gold-bright)}
.ratescta.buy{background:var(--surface);border-color:var(--line)}
.ratescta > div{display:flex;flex-direction:column;gap:4px}
.ratescta b{font-family:var(--serif);font-size:18px}
.ratescta span{font-size:14px;color:var(--ink-soft);line-height:1.5}
.ratescta .btn{white-space:nowrap;flex-shrink:0}
.ratestbl{width:100%;border-collapse:collapse;font-size:14.5px;background:var(--surface)}
.ratestbl th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--line-strong);background:var(--bg);white-space:nowrap}
.ratestbl td{padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.ratestbl tr:last-child td{border-bottom:0}
.ratestbl td.q{color:var(--gold);font-weight:600}
.ratestbl a{text-decoration:none;color:var(--ink)}
.ratestbl a:hover b{color:var(--gold)}
.ratesnote{font-size:13.5px;color:var(--ink-soft);line-height:1.6;margin:10px 0 0}
.ratesread p{line-height:1.75;margin:0 0 14px;max-width:820px}
.ratesall{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--gold);text-decoration:none;margin-left:10px}
.ratelist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.ratelist a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink)}
.ratelist a:hover{border-color:var(--gold-bright)}
.ratelist span{font-size:12.5px;color:var(--muted)}
@media (max-width:760px){.ratestrip{grid-template-columns:1fr}.ratescta{flex-direction:column;align-items:flex-start}}

/* ---- flats for rent ---- */
.rentpage .mk{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--gold);margin-bottom:8px}
.rentpage h1{font-size:clamp(24px,3.2vw,34px);margin-bottom:8px}
.renthead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
.renthead .lede{max-width:700px;margin:0}
.renthead .btn{white-space:nowrap;flex-shrink:0}
.rentfilters .frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}
.rentfilters .fld{margin:0}
.rrent{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:6px 0 4px}
.rrent b{font-family:var(--serif);font-size:20px;color:var(--ink)}
.rrent span{font-size:13px;color:var(--muted)}
.rrent i{font-style:normal;font-size:12.5px;color:var(--ink-soft);margin-left:auto}
.rrent.big b{font-size:30px}
.rrent.big i{margin-left:14px;font-size:14px}
.rmeta{font-size:13px;color:var(--ink-soft);margin:0;line-height:1.5}
.rentenq .fld{margin-bottom:10px}
.rentowner{border-color:var(--gold-bright);background:var(--gold-wash)}
.rentplan h2{font-size:21px;margin:4px 0 8px}
.rentplan p{color:var(--ink-soft);line-height:1.6;margin:0 0 14px}
.rentplan.owner{background:var(--navy);color:#E9EEF6;border-color:var(--navy)}
.rentplan.owner h2{color:#fff}.rentplan.owner p{color:#C9D5E6}
.planwrap .plan{display:flex;flex-direction:column;position:relative}
.planwrap .plan h2{font-size:22px;margin:6px 0 2px}
.planwrap .plan .price{font-family:var(--serif);font-size:30px;margin:4px 0 12px}
.planwrap .plan .price small{font-family:var(--sans);font-size:13px;color:var(--muted)}
.planwrap .plan ul{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14.5px;line-height:1.5;flex:1}
.planwrap .plan ul li{padding-left:22px;position:relative}
.planwrap .plan ul li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.planwrap .plan.best{border:2px solid var(--gold-bright);background:var(--gold-wash)}
.planwrap .plan .pill{position:absolute;top:14px;right:14px}
@media (max-width:760px){.renthead{flex-direction:column;align-items:flex-start}.grid3.planwrap{grid-template-columns:1fr}}
/* ---- my listings ---- */
.mylist{display:flex;flex-direction:column;gap:10px}
.myrow{display:flex;gap:14px;padding:12px 14px;align-items:flex-start}
.myph{width:120px;height:80px;flex-shrink:0;border-radius:3px;overflow:hidden;background:#EDF1F7;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
.myph img{width:100%;height:100%;object-fit:cover}
.mybd{flex:1;min-width:0}
.mytop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16px;margin-bottom:3px}
.myacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
@media (max-width:560px){.myrow{flex-direction:column}.myph{width:100%;height:150px}}
/* ---- the seller block on the home page ---- */
.sellwhy{margin:0 0 26px}
.sellwhy .mk{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--gold);margin-bottom:6px}
.sellwhy-head h2{font-size:clamp(22px,2.6vw,30px);margin:0 0 8px}
.sellwhy-head p{color:var(--ink-soft);font-size:16px;line-height:1.6;max-width:70ch;margin:0 0 18px}
.sellsteps{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sellsteps li{position:relative;background:var(--navy);color:#E9EEF6;border-radius:var(--radius);padding:18px 18px 16px 18px}
.sellsteps li span{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:700;font-family:var(--mono);margin-bottom:10px}
.sellsteps li b{display:block;font-family:var(--serif);font-size:17px;color:#fff;margin-bottom:4px}
.sellsteps li i{font-style:normal;font-size:13.5px;color:#C4D3E7;line-height:1.5}
.sellgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}
.sellgrid div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;box-shadow:var(--shadow)}
.sellgrid b{display:block;font-size:15px;margin-bottom:4px}
.sellgrid span{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.sellcta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:16px;background:var(--gold-wash);border:1px solid var(--gold-bright);border-radius:var(--radius)}
.sellnum{font-size:13.5px;color:var(--ink-soft);margin-left:auto}
.sellnum b{font-family:var(--serif);font-size:18px;color:var(--ink);margin-right:4px}
.lpabout{margin:0 0 10px;border:1px dashed var(--line-strong);border-radius:var(--radius);padding:10px 14px;background:var(--surface)}
.lpabout summary{cursor:pointer;font-weight:600;font-size:14.5px;color:var(--ink-soft)}
.lpabout h3{font-size:16.5px;margin:16px 0 4px}
.lpabout p{color:var(--ink-soft);font-size:14.5px;line-height:1.65;margin:0 0 10px}
.postfree b{color:var(--navy);background:#fff;border-radius:3px;padding:0 5px;margin-left:4px;font-size:11px;letter-spacing:.05em}
@media (max-width:760px){.sellsteps,.sellgrid{grid-template-columns:1fr}.sellnum{margin-left:0}}
.postchoose .pch{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);padding:24px}
.postchoose .pch:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.postchoose .pch h2{font-size:24px;margin:2px 0 0}
.postchoose .pch p{color:var(--ink-soft);line-height:1.6;margin:0 0 10px;flex:1}
.postchoose .pch .btn{align-self:flex-start}
@media (max-width:1420px){.hidemd{display:none}}
@media(max-width:560px){.sitehead .lg-word{display:none}.headcta .postfree{padding:6px 9px;font-size:12.5px}.sitehead .in{gap:7px}}
/* on a phone, an owner arriving from an advert sees the form first, the reasons after */
@media (max-width:900px){.pcgrid.sellfirst>div:nth-child(2){order:-1}.pcgrid.sellfirst .pcintro h1{font-size:24px}}

/* ==== live chat box (v33) ==== */
.skychat-btn{position:fixed;right:16px;bottom:16px;z-index:61;background:#0B1E38;color:#fff;border:2px solid #D9A43A;border-radius:28px;height:52px;padding:0 18px 0 14px;display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;line-height:1;font-family:inherit;cursor:pointer;box-shadow:0 8px 24px -6px rgba(0,0,0,.45)}
.skychat-btn.above{bottom:82px}
.skychat-btn .dot{position:absolute;top:4px;right:6px;width:12px;height:12px;border-radius:50%;background:#E5484D;border:2px solid #fff}
.skychat{position:fixed;right:16px;bottom:16px;z-index:70;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 32px);background:#fff;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden}
.skychat[hidden]{display:none}
.skychat header{background:#0B1E38;color:#fff;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}
.skychat header b{display:block;font-size:16px}.skychat header span{font-size:12.5px;color:#C9D5E6}
.skychat header button{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.skychat .log{flex:1;overflow-y:auto;padding:12px;background:#F4F6FA;display:flex;flex-direction:column;gap:8px}
.skychat .m{max-width:82%;padding:8px 11px;border-radius:12px;font-size:14.5px;line-height:1.4;white-space:pre-wrap;word-wrap:break-word}
.skychat .m i{display:block;font-style:normal;font-size:11px;opacity:.6;margin-top:3px}
.skychat .m.them{background:#fff;border:1px solid #E1E6EE;align-self:flex-start;border-bottom-left-radius:4px}
.skychat .m.me{background:#0B1E38;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.skychat form{border-top:1px solid #E1E6EE;padding:10px;background:#fff}
.skychat .who{display:flex;gap:6px;margin-bottom:6px}.skychat .who[hidden]{display:none}
.skychat input,.skychat textarea{font:inherit;font-size:14.5px;border:1px solid #C9D2DE;border-radius:6px;padding:8px 9px;width:100%;min-width:0;box-sizing:border-box}
.skychat .row{display:flex;gap:6px;align-items:flex-end}.skychat textarea{resize:none}
.skychat .row button{background:#D9A43A;color:#0B1E38;border:0;border-radius:6px;font-weight:700;font-size:14px;font-family:inherit;padding:10px 14px;cursor:pointer}
.skychat .note{font-size:11.5px;color:#6B7686;margin:6px 0 0}
.skychat .hpx{position:absolute;left:-9999px;width:1px;height:1px}
@media (max-width:560px){.skychat-btn .t{display:none}.skychat-btn{width:52px;padding:0;justify-content:center}.skychat{right:0;bottom:0;width:100vw;max-width:100vw;height:85vh;border-radius:14px 14px 0 0}}
/* ==== "Alert me" bell ==== */
.pushbell{display:inline-flex;align-items:center;gap:6px;background:#FFF6E3;border:1.5px solid #D9A43A;color:#0B1E38;border-radius:20px;padding:7px 14px;font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;margin:6px 0}
.pushbell[hidden]{display:none}.pushbell:disabled{cursor:default;opacity:.85}

/* ==== admin sidebar: collapsible groups (v34) ==== */
.admside details.grp{margin:0}
.admside details.grp summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#8EA4C0;padding:11px 16px 9px;text-transform:uppercase;user-select:none;border-top:1px solid rgba(255,255,255,.06)}
.admside details.grp summary::-webkit-details-marker{display:none}
.admside details.grp summary:hover{color:#fff;background:rgba(255,255,255,.04)}
.admside details.grp summary span:first-child{flex:1}
.admside details.grp summary .ct{background:rgba(217,164,58,.25);color:#F2C766}
.admside details.grp summary .chev{width:7px;height:7px;border-right:1.5px solid #6C82A0;border-bottom:1.5px solid #6C82A0;transform:rotate(-45deg);transition:transform .15s;margin-right:2px}
.admside details.grp[open] summary .chev{transform:rotate(45deg)}
.admside details.grp[open] summary{color:#F2C766}
.admside details.grp .grpin{padding:2px 0 6px}
.admside details.grp .grpin a{padding:7px 16px 7px 22px;font-size:13.5px}
@media(max-width:900px){.admside details.grp{display:flex;flex-direction:row}.admside details.grp summary{display:none}.admside details.grp .grpin{display:flex;flex-direction:row;padding:0}.admside details.grp .grpin a{padding:9px 14px}}

/* ---- bank auctions (public) ---- */
.auccard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:.15s}
.auccard:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.auccard.feat{border-color:var(--gold-bright)}
.auccard .aph{display:block;width:auto;height:auto;border:0;border-radius:0;aspect-ratio:400/232;background:var(--navy);position:relative;overflow:hidden;text-decoration:none}
.auccard .aph img{width:100%;height:100%;object-fit:cover;display:block}
.auccard .aph .noph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;padding:18px;text-align:center}
.auccard .aph .noph b{font-family:var(--serif);font-size:20px;line-height:1.2}
.auccard .aph .noph i{font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#C9B37A}
.auccard .tag{position:absolute;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:4px 9px;border-radius:2px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.22)}
.auccard .tag.bank{left:9px;top:9px;background:#fff;color:var(--navy);max-width:60%;overflow:hidden;text-overflow:ellipsis}
.auccard .tag.soon{left:9px;bottom:9px;top:auto;background:#B3261E;color:#fff}
.auccard .tag.below{right:9px;top:9px;left:auto;background:var(--gold-bright);color:var(--navy)}
.auccard .bd{padding:13px 14px;display:flex;flex-direction:column;gap:5px;flex:1}
.auccard h3{font-size:16px;line-height:1.25;margin:0}
.auccard h3 a{color:var(--ink);text-decoration:none}
.auccard .loc{font-size:13px;color:var(--muted);margin:0}
.aucprice{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:4px 0 0}
.aucprice b{font-family:var(--serif);font-size:21px;color:var(--ink)}
.aucprice span{font-size:12.5px;color:var(--muted)}
.aucprice i{font-style:normal;font-size:12.5px;color:var(--ink-soft);margin-left:auto}
.aucmeta{font-size:13px;color:var(--ink-soft);margin:0}
.auccount{display:flex;flex-wrap:wrap;gap:8px 18px;background:var(--gold-wash);border:1px solid var(--gold-bright);border-radius:var(--radius);padding:10px 14px;margin:8px 0 10px;font-size:14.5px}
.auccount b{color:var(--ink)}
.auccount.soon{background:#FDECEA;border-color:#E2A39D}
.aucsteps h2{font-size:21px;margin:0 0 10px}
.aucsteps ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;line-height:1.55;font-size:15px}
.aucsteps li b{color:var(--ink)}
.aucdisc{font-size:12.5px;color:var(--muted);line-height:1.55;border-top:1px solid var(--line);padding-top:12px;margin-top:18px}
.aucwhy{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.5}
.aucwhy li{padding-left:22px;position:relative}
.aucwhy li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.aucint .fld label small{font-weight:400;color:var(--muted)}
.aucpriv{font-size:12.5px;color:var(--muted);background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:4px;padding:6px 10px;margin:0 0 12px;display:inline-block}
