:root{
  --green:#0F6B43;--green-deep:#0C4F32;--ink:#14352A;--leaf:#2FC77B;--amber:#F0A93B;
  --bg:#F4F8F5;--surface:#fff;--line:#E1EBE4;--muted:#6B7B72;--text:#2C3D35;
  --new:#F0A93B;--contacted:#3B9CD9;--quoted:#8A6FE8;--won:#2F9E5B;--lost:#B23B32;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:22px}
.topnav{background:var(--green);color:#fff}
.topnav .in{max-width:1160px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.topnav .brand{font-weight:700;font-size:16px;display:flex;align-items:center;gap:10px}
.topnav .brand .dot{width:26px;height:26px;border-radius:7px;background:#fff;color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:800}
.topnav a.out{color:#cdeed9;font-size:14px}
.topnav a.out:hover{color:#fff}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.stat b{font-size:26px;font-weight:700;color:var(--ink);display:block;line-height:1}
.stat span{font-size:12.5px;color:var(--muted)}
.stat.accent{border-left:4px solid var(--amber)}

.bar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.bar input,.bar select{font:inherit;font-size:14px;padding:9px 12px;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.bar input:focus,.bar select:focus{outline:none;border-color:var(--green)}
.bar .grow{flex:1;min-width:180px}
.btn{font:inherit;font-size:14px;font-weight:600;padding:9px 16px;border-radius:8px;border:1.5px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-deep)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--green);color:var(--green)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:13px 16px;font-size:14px;border-bottom:1px solid var(--line)}
th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#fafcfb}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:#f7fbf8}
td .name{font-weight:600;color:var(--ink)}
td .sub{font-size:12.5px;color:var(--muted)}

.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;text-transform:capitalize;display:inline-block}
.badge.new{background:#fdf1de;color:#a9741a}
.badge.contacted{background:#e4f1fb;color:#256a97}
.badge.quoted{background:#efeafc;color:#5b45a8}
.badge.won{background:#e5f5ec;color:#1d7a45}
.badge.lost{background:#fce9e7;color:#8f2c25}

.empty{padding:48px;text-align:center;color:var(--muted)}
.pill-link{color:var(--green);font-weight:600;font-size:13.5px}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px}
.login .box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(12,42,28,.1)}
.login h1{font-size:20px;color:var(--ink);margin-bottom:4px}
.login p{font-size:13.5px;color:var(--muted);margin-bottom:22px}
.login label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:14px 0 6px}
.login input{width:100%;font:inherit;font-size:15px;padding:11px 13px;border:1.5px solid var(--line);border-radius:9px}
.login input:focus{outline:none;border-color:var(--green)}
.login .btn-primary{width:100%;justify-content:center;margin-top:20px;padding:12px}
.err{background:#fce9e7;color:#8f2c25;border:1px solid #f3c4c0;border-radius:9px;padding:11px 14px;font-size:14px;margin-bottom:16px}

/* detail */
.detail{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.detail .block{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.detail h2{font-size:17px;color:var(--ink);margin-bottom:14px}
.kv{display:flex;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.kv:last-child{border-bottom:none}
.kv .k{width:120px;color:var(--muted);flex-shrink:0}
.kv .v{color:var(--ink);font-weight:500}
.detail textarea{width:100%;font:inherit;font-size:14px;padding:11px;border:1.5px solid var(--line);border-radius:9px;min-height:130px;resize:vertical}
.detail select{width:100%;font:inherit;font-size:14px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;margin-bottom:14px}
.saved{background:#e5f5ec;color:#1d7a45;border:1px solid #b6e2c6;border-radius:9px;padding:10px 14px;font-size:14px;margin-bottom:14px}
@media(max-width:820px){.stats{grid-template-columns:1fr 1fr}.detail{grid-template-columns:1fr}}
