@import url('https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

/* ============================================================
   UNIFIED THEME — all pages use these variables.
   theme.php overrides them from Settings at runtime.
   ============================================================ */
:root{
  --top-1:#e9f5ed;
  --top-2:#dbefe2;
  --bg:#ffffff;
  --surface:#f3f9f5;
  --surface-2:#e9f4ee;
  --line:#e1ede6;
  --accent:#1f8a52;
  --accent-ink:#ffffff;
  --btn:#1f8a52;
  --btn-d:#13603a;
  --txt:#0e1c15;
  --mut:#5a6f65;
  --txt-d:#15302a;
  --mut-d:#5f7468;
  --icon:#1f8a52;
  --radius:12px;
  --radius-sm:9px;
  --shadow-soft:0 6px 20px rgba(19,96,58,.07);
}

*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--txt-d);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}

h1,h2,h3,.brand,.card-title{font-family:'Sora',sans-serif;letter-spacing:-.02em}
a{text-decoration:none;color:inherit}
a:hover{text-decoration:underline}
code{font-family:ui-monospace,'SF Mono',Menlo,monospace;background:rgba(19,96,58,.08);padding:.1em .4em;border-radius:4px;font-size:.9em;color:var(--btn-d)}

/* ===== Brand ===== */
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;color:var(--btn-d)}
.dot,.brand-mark{width:13px;height:13px;border-radius:50%;border:2.5px solid var(--btn);position:relative;flex:none}
.dot::after,.brand-mark::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--btn)}

/* ===== Top bar (light green) ===== */
.top{background:linear-gradient(180deg,var(--top-1),var(--top-2));color:var(--txt);padding:1.4rem 2.2rem 2.4rem}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem}
.topbar .out{font-size:.88rem;color:var(--mut)}
.topbar .out a{color:var(--btn-d);font-weight:600}

/* Quick-search (dashboard only) */
.qs{background:#fff;border:1px solid rgba(19,96,58,.16);border-radius:16px;padding:1.1rem;
   display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:.7rem;align-items:end;box-shadow:var(--shadow-soft)}
.qs label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);font-weight:600;display:block;margin-bottom:.3rem}
.qs input{width:100%;border:1px solid #cfe3d6;border-radius:var(--radius-sm);padding:.6rem .7rem;font-family:inherit;font-size:.92rem;color:var(--txt)}
.qs input:focus{outline:none;border-color:var(--btn);box-shadow:0 0 0 3px rgba(31,138,82,.15)}
.qs button{background:var(--btn);color:#fff;border:none;border-radius:var(--radius-sm);padding:.66rem 1.3rem;font-weight:600;font-family:'Sora';cursor:pointer}
.qs button:hover{filter:brightness(.92)}

/* ===== Work area (light) + sidebar ===== */
.work{padding:2rem 2.2rem 3rem;display:grid;grid-template-columns:230px 1fr;gap:1.4rem;max-width:1400px;margin:0 auto}
.rail{display:flex;flex-direction:column;gap:.5rem}
.rail .rl{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--mut-d);margin-bottom:.4rem}
.rail a{display:flex;align-items:center;gap:.7rem;background:var(--surface);border:1px solid var(--line);
  border-radius:11px;padding:.8rem .9rem;font-weight:500;font-size:.92rem;transition:.15s;color:var(--txt-d)}
.rail a:hover{filter:brightness(.97);text-decoration:none}
.rail a.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.rail svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none;color:var(--icon)}
.rail a.on svg{color:var(--accent-ink)}
.rail .sep{height:1px;background:var(--line);margin:.5rem .2rem}

.panel{display:flex;flex-direction:column;gap:1.2rem;min-width:0}

/* ===== Page head ===== */
.page-head{margin-bottom:.4rem}
.eyebrow{font-family:ui-monospace,'SF Mono',Menlo,monospace;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--btn-d);margin-bottom:.4rem;font-weight:600}
.page-head h1{font-size:1.6rem;font-weight:700;color:var(--txt-d);line-height:1.15}
.lede{color:var(--mut-d);max-width:56ch;margin-top:.45rem;font-size:.95rem}
.muted{color:var(--mut-d)}
.small{font-size:.82rem}

/* ===== Cards / panels ===== */
.card,.w,.recent{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem}
.card{padding:1.4rem}
.card-title{font-size:1.05rem;font-weight:600;color:var(--txt-d);margin-bottom:1rem}
.card-title .count{color:var(--mut-d);font-weight:500;font-size:.85rem;margin-left:.3em}

/* ===== Dashboard widgets ===== */
.widgets,.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.stats{grid-template-columns:repeat(3,1fr)}
.w b,.stat-num{font-family:'Sora';font-weight:700;font-size:1.7rem;color:var(--accent);display:block;line-height:1.1}
.w span,.stat-label{font-size:.8rem;color:var(--mut-d)}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.2rem}

/* ===== Recent / row lists ===== */
.recent h3{font-size:1rem;margin-bottom:.9rem;color:var(--txt-d);font-family:'Sora'}
.recent .row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.88rem}
.recent .row:last-child{border:none}
.recent .co{color:var(--txt-d)}
.recent .meta{color:var(--mut-d)}
.empty{color:var(--mut-d);font-size:.9rem;padding:1.4rem 0;text-align:center}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:600;
  font-size:.92rem;padding:.6rem 1.1rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;line-height:1;
  transition:.15s;text-decoration:none}
.btn-primary{background:var(--btn);color:#fff;border-color:var(--btn)}
.btn-primary:hover{filter:brightness(.92);text-decoration:none}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--txt-d)}
.btn-ghost:hover{border-color:var(--btn);color:var(--btn-d);text-decoration:none}
.btn-sm{padding:.42rem .8rem;font-size:.82rem}

/* ===== Forms ===== */
label{display:block;font-weight:500;font-size:.85rem;color:var(--txt-d)}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],
input[type=url],input[type=search],select,textarea{
  width:100%;font-family:inherit;font-size:.95rem;padding:.6rem .7rem;
  border:1px solid #cfe3d6;border-radius:var(--radius-sm);background:#fff;color:var(--txt-d)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--btn);box-shadow:0 0 0 3px rgba(31,138,82,.15)}

/* ===== Filters bar ===== */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.9rem;margin-bottom:1.2rem;align-items:center}
.filters input,.filters select{flex:1 1 150px;min-width:0;background:#fff}
.filters .btn{flex:none}

/* ===== Data table ===== */
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-soft)}
table.data{width:100%;border-collapse:collapse;font-size:.9rem}
table.data th{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  font-size:.68rem;color:var(--mut-d);text-align:left;padding:.85rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--line)}
table.data td{padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top;color:var(--txt-d)}
table.data tr:last-child td{border-bottom:none}
table.data tr:hover td{background:rgba(31,138,82,.04)}
.num{text-align:right}
.co-name{display:block;font-weight:600;color:var(--btn-d)}
.co-site{font-size:.8rem;font-family:ui-monospace,'SF Mono',Menlo,monospace;color:var(--mut-d)}
.contact span{display:block}

/* ===== Score & badges ===== */
.score{display:inline-block;min-width:2.2em;text-align:center;font-family:ui-monospace,'SF Mono',Menlo,monospace;font-weight:600;
  padding:.18em .55em;border-radius:6px;font-size:.82rem}
.score-hi{background:rgba(31,138,82,.16);color:var(--btn-d)}
.score-mid{background:rgba(185,113,26,.16);color:#8a560d}
.score-lo{background:rgba(108,118,130,.14);color:var(--mut-d)}

.badge,.pill{font-size:.7rem;font-weight:600;padding:.18em .65em;border-radius:20px;text-transform:capitalize;display:inline-block;background:rgba(31,138,82,.13);color:var(--btn-d)}
.badge-discovered{background:rgba(108,118,130,.16);color:#42504a}
.badge-enriched{background:rgba(31,138,82,.13);color:var(--btn-d)}
.badge-qualified{background:var(--btn);color:#fff}
.badge-rejected{background:rgba(180,60,60,.12);color:#a33}

.tag{display:inline-block;font-size:.7rem;font-weight:600;padding:.18em .65em;border-radius:20px;text-transform:capitalize;background:rgba(31,138,82,.13);color:var(--btn-d)}
.tag-email{background:rgba(31,138,82,.14);color:var(--btn-d)}
.tag-domain{background:rgba(185,113,26,.16);color:#8a560d}

/* ===== Alerts ===== */
.alert{padding:.8rem 1rem;border-radius:var(--radius-sm);margin-bottom:1.2rem;font-size:.92rem;border:1px solid}
.alert-error{background:#fdeceb;border-color:#f3c4c1;color:#9a2a25}
.alert-ok{background:#e8f5ee;border-color:#b7e0c8;color:var(--btn-d)}
.alert-info{background:#eef3f8;border-color:#cdddee;color:#2c5876}

/* ===== Pager ===== */
.pager{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:1.4rem;color:var(--mut-d);font-size:.9rem}
.pager a{color:var(--btn-d);font-weight:600}

/* ===== Auth screens (kept dark) ===== */
.auth-body{min-height:100vh;display:grid;place-items:center;background:#0e1c15;overflow:hidden;position:relative;font-family:'Inter',system-ui,sans-serif}
.radar{position:absolute;inset:0;display:grid;place-items:center;color:rgba(125,211,192,.13);pointer-events:none}
.ping{fill:var(--btn);transform-origin:300px 300px;animation:ping 3s ease-out infinite}
@keyframes ping{0%{r:6;opacity:.9}100%{r:300;opacity:0}}
@media (prefers-reduced-motion:reduce){.ping{animation:none}}
.auth-card{position:relative;z-index:1;background:#fff;width:min(380px,92vw);padding:2.2rem;border-radius:14px;box-shadow:0 30px 60px rgba(0,0,0,.4)}
.auth-card h1{margin:1.2rem 0 .3rem;font-size:1.4rem}
.auth-card form{margin-top:1.3rem}
.auth-card .btn{width:100%;margin-top:.4rem}
.ok{color:var(--btn-d)}

/* ===== Inline form (no margin) ===== */
.inline-form{margin:0;display:inline-block}

/* ===== Responsive ===== */
@media(max-width:980px){
  .work{grid-template-columns:1fr;padding:1.4rem}
  .rail{flex-direction:row;flex-wrap:wrap;gap:.4rem}
  .rail a{flex:1 1 45%;font-size:.86rem;padding:.65rem .7rem}
  .rail .rl,.rail .sep{display:none}
  .qs{grid-template-columns:1fr 1fr}
  .widgets,.stats{grid-template-columns:1fr 1fr}
  .top{padding:1.2rem 1.4rem 2rem}
}
@media(max-width:560px){
  .qs,.widgets,.stats{grid-template-columns:1fr}
  .topbar{flex-direction:column;align-items:flex-start;gap:.5rem}
  .table-wrap{overflow-x:auto}
  table.data{min-width:700px}
}
