:root{
  --black:#0d0d0b; --black-soft:#181714; --red:#C0392B; --gold:#c9a96e;
  --paper:#f7f5f1; --card:#ffffff; --line:#e4ded3; --ink:#2a2723; --muted:#7d766b;
  --new:#C0392B; --contacted:#e8a838; --consultation:#1a5c8a; --estimate:#7a5ea8;
  --signed:#1a8a3f; --paid:#0d6b33; --lost:#6a6660;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;line-height:1.55;min-height:100vh}
a{color:inherit}
.serif{font-family:'Cormorant Garamond',serif}

/* top bar */
.topbar{background:var(--black);display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;position:sticky;top:0;z-index:20}
.brand{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:700;letter-spacing:.04em;color:var(--gold)}
.brand span{color:var(--red)}
.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:8.5px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;color:#9a958e;margin-top:3px}
.topbar-right{display:flex;align-items:center;gap:18px;color:#cfc9bd;font-size:13px}
.rolepill{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  background:var(--gold);color:var(--black);padding:4px 10px}
.rolepill.admin{background:var(--red);color:#fff}
.linkbtn{background:none;border:0;color:#cfc9bd;font-family:inherit;font-size:13px;cursor:pointer;text-decoration:underline}

/* preview ribbon */
.previewbar{background:var(--gold);color:var(--black);text-align:center;font-size:12px;
  font-weight:600;letter-spacing:.02em;padding:7px 12px}

/* layout */
.wrap{max-width:1040px;margin:0 auto;padding:34px 24px 80px}
.pagehead{margin-bottom:26px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:9px}
.pagehead h1{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(30px,5vw,42px);
  color:var(--black);line-height:1.05}
.pagehead p{color:var(--muted);margin-top:8px;font-size:15px}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-bottom:30px}
.stats>div{background:var(--card);padding:18px 16px}
.stats b{display:block;font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:700;color:var(--black);line-height:1}
.stats span{display:block;margin-top:6px;font-size:11.5px;font-weight:500;letter-spacing:.03em;color:var(--muted)}

/* cards */
.card{background:var(--card);border:1px solid var(--line);margin-bottom:26px}
.card-h{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.card-h h2{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.card-b{padding:22px}

/* table */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td .who{font-weight:600;color:var(--black)}
td .sub{font-size:12px;color:var(--muted)}
.empty{padding:40px;text-align:center;color:var(--muted);font-size:14px}

/* status badge */
.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;padding:4px 10px;white-space:nowrap}
.b-new{background:var(--new)} .b-contacted{background:var(--contacted)}
.b-consultation{background:var(--consultation)} .b-estimate_sent{background:var(--estimate)}
.b-contract_signed{background:var(--signed)} .b-reward_paid{background:var(--paid)} .b-lost{background:var(--lost)}

select.statussel{font-family:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--line);background:var(--paper)}

/* forms */
.field{margin-bottom:16px}
.field.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}
label .req{color:var(--red)}
input,select,textarea{width:100%;font-family:inherit;font-size:15px;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);padding:11px 13px;transition:border-color .15s,background .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);background:#fff}
textarea{min-height:90px;resize:vertical}
.btn{font-family:inherit;font-size:13.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);background:var(--black);border:0;padding:14px 22px;cursor:pointer;transition:background .15s,color .15s}
.btn:hover{background:var(--red);color:#fff}
.btn.full{width:100%}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--paper);color:var(--ink)}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--black)}
.login-card{background:var(--card);max-width:400px;width:100%;padding:40px 34px;border-top:3px solid var(--red)}
.login-card .brand{color:var(--gold);text-align:center;margin-bottom:6px}
.login-card .tag{text-align:center;color:var(--muted);font-size:13px;margin-bottom:28px}
.login-card .eyebrow{text-align:center}
.msg{font-size:13px;padding:11px 14px;margin-bottom:16px;border-left:3px solid}
.msg.err{background:#fbeeec;border-color:var(--red);color:#8a2b20}
.msg.ok{background:#eef6ef;border-color:var(--signed);color:#1a5c2e}
.demohint{margin-top:20px;font-size:12px;color:var(--muted);background:var(--paper);border:1px dashed var(--line);padding:12px 14px;line-height:1.7}
.demohint b{color:var(--ink)}

.reward-amt{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:17px;color:var(--black)}

@media(max-width:740px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .field.row2{grid-template-columns:1fr}
  .hide-sm{display:none}
  .wrap{padding:24px 16px 60px}
}

/* ---- tabs ---- */
.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:24px}
.tab{padding:12px 20px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);cursor:pointer;border:0;border-bottom:2px solid transparent;background:none;font-family:inherit}
.tab.active{color:var(--black);border-bottom-color:var(--red)}

/* ---- clickable rows ---- */
tr.click{cursor:pointer}
tr.click:hover td{background:#faf8f4}

/* ---- detail view ---- */
.backlink{background:none;border:0;color:var(--muted);font-family:inherit;font-size:13px;cursor:pointer;margin-bottom:14px;padding:0}
.backlink:hover{color:var(--ink)}
.detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}
.kv{display:grid;grid-template-columns:120px 1fr;gap:9px 14px;font-size:14px;margin:0}
.kv dt{color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}
.kv dd{color:var(--ink);margin:0}
.notesblock{margin-top:18px;padding:14px;background:var(--paper);border:1px solid var(--line);font-size:14px;line-height:1.65;white-space:pre-wrap}

/* ---- timeline ---- */
.timeline{list-style:none;padding:0;margin:6px 0 0}
.timeline li{position:relative;padding:0 0 16px 22px;border-left:2px solid var(--line)}
.timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--gold)}
.timeline li:first-child::before{background:var(--red)}
.tl-status{font-weight:600;font-size:13.5px;color:var(--black)}
.tl-date{font-size:12px;color:var(--muted)}

/* ---- admin controls in detail ---- */
.ctl{margin-bottom:14px}
.ctl label{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ctl-row{display:flex;gap:8px}
.w9-yes{color:var(--signed);font-weight:600}
.w9-no{color:var(--red);font-weight:600}
.typepill{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;background:var(--black);color:var(--gold)}

@media(max-width:740px){ .detail-grid{grid-template-columns:1fr} }

/* ---- consent + legal ---- */
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:13px 14px;margin-bottom:16px;cursor:pointer}
.consent input{width:auto;margin-top:2px;flex:none}
.legalnote{font-size:12px;color:var(--muted);line-height:1.6;background:var(--paper);border:1px dashed var(--line);padding:12px 14px;margin-top:12px}
.legalfoot{max-width:1040px;margin:0 auto;padding:26px 24px 50px;border-top:1px solid var(--line);margin-top:30px;
  font-size:11.5px;color:var(--muted);line-height:1.7;text-align:center}
.legalfoot b{color:var(--ink)}
.brokernote{font-size:12px;color:var(--muted);line-height:1.55;background:var(--paper);border-left:3px solid var(--gold);padding:10px 12px;margin-top:14px}

/* ---- activity log ---- */
.activity{list-style:none;padding:0;margin:0}
.activity li{padding:12px 0;border-bottom:1px solid var(--line)}
.activity li:last-child{border-bottom:0}
.act-body{font-size:14px;color:var(--ink);line-height:1.55}
.act-meta{font-size:11.5px;color:var(--muted);margin-top:4px}
.addnote{display:flex;gap:8px;margin-top:14px}
.addnote textarea{min-height:60px}
.tl-note{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.5}
.reward-display{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:24px;color:var(--black)}
.reward-sub{font-size:12px;color:var(--muted);margin:2px 0 12px}

/* ---- signup ---- */
.signup-card{background:var(--card);max-width:560px;width:100%;padding:40px 38px;border-top:3px solid var(--red);margin:30px auto}
.signup-card .brand{color:var(--gold);text-align:center;margin-bottom:6px}
.signup-card .tag{text-align:center;color:var(--muted);font-size:13px;margin-bottom:24px}
.section-label{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  padding-bottom:10px;margin:26px 0 18px;border-bottom:1px solid var(--line)}
.section-label:first-of-type{margin-top:6px}
.agreement-box{height:200px;overflow-y:auto;border:1px solid var(--line);background:var(--paper);padding:16px;font-size:12.5px;line-height:1.65;color:var(--ink)}
.agreement-box h4{font-size:13px;margin:14px 0 5px;color:var(--black)}
.agreement-box h4:first-child{margin-top:0}
.agreement-box p{margin:0 0 8px}
.switchline{text-align:center;font-size:13px;color:var(--muted);margin-top:18px}
.switchline button{background:none;border:0;color:var(--red);font-family:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
.realtor-only{display:none}
.realtor-only.show{display:block}

/* ---- nav menu ---- */
.navmenu{display:flex;gap:18px;align-items:center}
.navmenu button{background:none;border:0;color:#cfc9bd;font-family:inherit;font-size:13px;cursor:pointer;padding:0}
.navmenu button.on{color:var(--gold)}

/* ---- stepper ---- */
.stepper{display:flex;flex-wrap:wrap;gap:0;margin:4px 0 4px}
.step{display:flex;align-items:center;font-size:12px}
.step .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:var(--muted);background:#fff;flex:none}
.step.done .dot{background:var(--signed);border-color:var(--signed);color:#fff}
.step.current .dot{background:var(--red);border-color:var(--red);color:#fff}
.step .lbl{margin:0 12px 0 7px;color:var(--muted);white-space:nowrap}
.step.done .lbl,.step.current .lbl{color:var(--ink);font-weight:600}
.step .bar{width:26px;height:2px;background:var(--line)}
.step.done .bar{background:var(--signed)}
.advance{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}

/* ---- profile / value ---- */
.valuecol{font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--black)}
.w9-pending{color:var(--contacted);font-weight:600}
.profilebtn{background:none;border:1px solid var(--line);color:var(--ink);font-family:inherit;font-size:13px;padding:9px 14px;cursor:pointer}
.profilebtn:hover{background:var(--paper)}
.filerow{display:flex;align-items:center;gap:12px;margin-top:8px}
.statusline{font-size:13px;color:var(--muted);margin-top:6px}

/* ---- reward summary ---- */
.rwsum{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:14px}
.rwsum>div{background:#fff;padding:14px 12px;text-align:center}
.rwsum b{display:block;font-family:'Cormorant Garamond',serif;font-size:23px;font-weight:700;color:var(--black);line-height:1}
.rwsum span{display:block;margin-top:5px;font-size:11px;color:var(--muted);letter-spacing:.03em}
