/* Seller Signal Engine page styles */
:root {
  --bg:#080b10; --surface:#0f1318; --surface-2:#161b22;
  --border:#1e2430; --lime:#c8f526; --lime-dim:rgba(200,245,38,.12);
  --text:#e8eaf0; --muted:#6b7280; --dim:#4b5563;
  --orange:#fb923c; --amber:#fbbf24; --green:#4ade80; --red:#f87171; --blue:#60a5fa;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:'Outfit',sans-serif;min-height:100vh;}
a{color:inherit;text-decoration:none;}

.db-header{background:var(--surface);border-bottom:1px solid var(--border);padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.db-logo{font-family:'Syne',sans-serif;font-weight:800;font-size:1.25rem;color:var(--lime);}
.db-logo span{color:var(--text);}
.db-nav{display:flex;gap:.75rem;font-size:.875rem;align-items:center;}
.db-nav a{color:var(--muted);padding:.3rem .65rem;border-radius:6px;transition:all .15s;}
.db-nav a:hover{color:var(--text);background:var(--surface-2);}
.db-nav a.active{color:var(--lime);background:var(--lime-dim);}

.page{max-width:1000px;margin:0 auto;padding:2rem 1.5rem;}
h1{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;margin-bottom:.25rem;}
.page-sub{color:var(--muted);font-size:.9rem;margin-bottom:2rem;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;}
.card-title{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:800;margin-bottom:1rem;}

.scan-form{display:grid;grid-template-columns:1fr auto auto auto;gap:.75rem;align-items:end;}
@media(max-width:700px){.scan-form{grid-template-columns:1fr;}}
.form-group{display:flex;flex-direction:column;gap:.4rem;}
label{font-size:.82rem;color:var(--muted);font-weight:500;}
input[type=text],select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;padding:.6rem .85rem;font-family:'Outfit',sans-serif;width:100%;transition:border .15s;}
input:focus,select:focus{outline:none;border-color:#4b6a2a;}

.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;font-family:'Outfit',sans-serif;transition:all .15s;white-space:nowrap;}
.btn-primary{background:var(--lime);color:#080b10;}
.btn-primary:hover:not(:disabled){background:#b4dc15;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border);}
.btn-ghost:hover{color:var(--text);border-color:#374151;}
.btn-sm{padding:.35rem .85rem;font-size:.8rem;}
.btn-outline-lime{background:transparent;color:var(--lime);border:1px solid rgba(200,245,38,.35);}
.btn-outline-lime:hover{background:var(--lime-dim);}

.cap-strip{display:flex;gap:1.5rem;font-size:.82rem;color:var(--muted);margin-top:.85rem;flex-wrap:wrap;}
.cap-item{display:flex;align-items:center;gap:.35rem;}
.cap-item strong{color:var(--text);}
.cap-used{color:var(--amber);}

#progress-panel{display:none;}
.progress-bar-wrap{background:var(--surface-2);border-radius:99px;height:6px;width:100%;margin:1rem 0;}
.progress-bar{height:6px;border-radius:99px;background:var(--lime);width:0%;transition:width 1.2s ease;}
.progress-status{font-size:.875rem;color:var(--muted);min-height:1.3em;}
.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--lime);border-radius:50%;animation:spin .7s linear infinite;display:inline-block;vertical-align:middle;margin-right:.4rem;}
@keyframes spin{to{transform:rotate(360deg);}}

#results-panel{display:none;}
.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap;}
.results-count{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;}
.results-count span{color:var(--lime);}
.prospect-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
.prospect-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:1.25rem;position:relative;transition:border-color .15s;}
.prospect-card:hover{border-color:#374151;}
.prospect-card.bucket-hot{border-left:3px solid var(--lime);}
.prospect-card.bucket-strong{border-left:3px solid var(--green);}
.prospect-card.bucket-worth_a_touch{border-left:3px solid var(--amber);}
.prospect-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem;}
.prospect-address{font-weight:600;font-size:.95rem;line-height:1.4;}
.prospect-meta{font-size:.78rem;color:var(--muted);margin-top:.2rem;}
.score-badge{flex-shrink:0;text-align:center;}
.score-num{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;line-height:1;}
.score-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;}
.score-num.hot{color:var(--lime);}
.score-num.strong{color:var(--green);}
.score-num.worth_a_touch{color:var(--amber);}
.reasons-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;}
.reason-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:var(--muted);}
.reason-dot{width:6px;height:6px;border-radius:50%;background:var(--dim);flex-shrink:0;margin-top:.35rem;}
.reason-dot.w35{background:var(--lime);}
.reason-dot.w30{background:var(--green);}
.reason-dot.w20{background:var(--amber);}
.reason-dot.w15{background:var(--blue);}
.value-row{display:flex;gap:1.5rem;font-size:.82rem;margin-bottom:.85rem;flex-wrap:wrap;}
.value-item{display:flex;flex-direction:column;gap:.1rem;}
.value-label{color:var(--dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;}
.value-val{color:var(--text);font-weight:600;}
.prospect-actions{display:flex;gap:.6rem;flex-wrap:wrap;}
.outreach-added{font-size:.8rem;color:var(--green);display:flex;align-items:center;gap:.35rem;}

.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:100;align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.75rem;max-width:600px;width:100%;max-height:85vh;overflow:auto;position:relative;}
.modal h3{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;margin-bottom:1rem;}
.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;line-height:1;}
.modal-close:hover{color:var(--text);}
.letter-pre{white-space:pre-wrap;font-size:.88rem;line-height:1.7;color:var(--text);font-family:'Outfit',sans-serif;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:1.25rem;}
.modal-actions{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap;}

.alert{padding:.65rem 1rem;border-radius:8px;font-size:.875rem;margin-bottom:1.25rem;border:1px solid;}
.alert-error{background:#1a0000;border-color:#7f1d1d;color:var(--red);}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted);}
.empty-state .icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.5;}

.history-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--border);font-size:.82rem;gap:.75rem;}
.history-item:last-child{border-bottom:none;}
.history-postcode{font-weight:600;}
.history-meta{color:var(--muted);}
.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:.72rem;font-weight:700;white-space:nowrap;}
.badge-complete{background:#0d1a0d;color:var(--green);}
.badge-pending,.badge-processing{background:#1a2030;color:var(--muted);}
.badge-error{background:#1a0000;color:var(--red);}
.tier-badge{display:inline-flex;align-items:center;gap:.35rem;background:var(--lime-dim);color:var(--lime);border:1px solid rgba(200,245,38,.25);border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.v2-teaser{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;font-size:.82rem;color:var(--dim);margin-top:.75rem;}
.v2-teaser strong{color:var(--muted);}
@media(max-width:600px){.prospect-top{flex-direction:column;}.score-badge{align-self:flex-start;}}
