:root{
  --navy:#0E1B2E; --navy2:#16273C; --navy3:#1E3149;
  --emerald:#10B981; --emerald-d:#0C9268; --slate:#2B4A66;
  --mist:#F4F8F6; --line:#E4ECE8; --ink:#0E1B2E; --muted:#5C6B79; --white:#fff; --red:#E2574C; --amber:#F59E0B;
  --disp:'Space Grotesk',system-ui,sans-serif; --body:'IBM Plex Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--body);color:var(--ink);background:var(--mist);line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.disp{font-family:var(--disp);font-weight:700;letter-spacing:-.01em}
a{color:inherit}
.wm{font-family:var(--disp);font-weight:700;font-size:21px;color:var(--navy)}.wm .v{color:var(--emerald)}
.brandlock{display:inline-flex;align-items:baseline;gap:.30em;text-decoration:none;line-height:1;font-size:29px}
.brandlock .brandlogo{height:.73em;width:auto;display:inline-block}
.brandlock .tag{font-family:var(--disp);font-weight:700;font-size:1em;letter-spacing:.005em;text-transform:uppercase;color:var(--emerald);line-height:1}
.muted{color:var(--muted)} .small{font-size:13px} .right{text-align:right}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:500;font-size:15px;padding:11px 18px;border-radius:10px;cursor:pointer;border:1.5px solid transparent;transition:.15s;background:var(--navy);color:#fff}
.btn:hover{background:var(--navy3)} .btn:active{transform:translateY(1px)}
.btn.primary{background:var(--emerald);color:var(--navy)} .btn.primary:hover{background:#0fd394}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)} .btn.ghost:hover{background:#fff}
.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}
.btn.danger{background:transparent;border-color:#f3c9c5;color:var(--red)}
.btn:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{font-family:var(--body);font-size:15px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;width:100%;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--emerald)}
label{font-size:13px;font-weight:600;color:#33414e;display:block;margin-bottom:5px}
.field{margin-bottom:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.row{display:flex;gap:12px;align-items:center} .wrapflex{flex-wrap:wrap}
.grow{flex:1} .spacer{flex:1}
.pill{display:inline-block;font-family:var(--disp);font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:99px;background:var(--mist);color:var(--muted)}
.pill.new{background:#eef;color:#4a4ad0}.pill.qualified{background:#fff5e6;color:#b5790c}.pill.quoted{background:#e9f6ff;color:#1d74b8}
.pill.won,.pill.signed,.pill.signed_paid{background:rgba(16,185,129,.13);color:var(--emerald-d)}.pill.lost,.pill.cancelled{background:#fde8e6;color:var(--red)}
.pill.sent,.pill.viewed{background:#eef;color:#4a4ad0}.pill.draft{background:var(--mist);color:var(--muted)}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(4,1fr)} .kpi .v{font-family:var(--disp);font-weight:700;font-size:26px;color:var(--navy)} .kpi .l{font-size:12px;color:var(--muted)}
table{width:100%;border-collapse:collapse} th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:10px 10px;border-bottom:1px solid var(--line)}
td{padding:12px 10px;border-bottom:1px solid var(--line);font-size:14px}
tr.clickable{cursor:pointer} tr.clickable:hover{background:var(--mist)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;z-index:100;opacity:0;transition:.2s;pointer-events:none}
.toast.show{opacity:1}
/* app shell */
.appbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.appbar .inner{max-width:1100px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;gap:16px}
.nav{display:flex;gap:4px;overflow-x:auto} .nav a{font-family:var(--disp);font-weight:500;font-size:14px;color:#33414e;padding:8px 12px;border-radius:9px;white-space:nowrap;cursor:pointer}
.nav a.active{background:var(--navy);color:#fff} .nav a:hover:not(.active){background:var(--mist)}
.container{max-width:1100px;margin:0 auto;padding:20px 16px 80px}
.page-h{display:flex;align-items:center;gap:12px;margin-bottom:18px} .page-h h2{font-size:24px}
.tenantsel{font-family:var(--disp);font-weight:500;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;max-width:170px}
.modal-bg{position:fixed;inset:0;background:rgba(14,27,46,.45);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:0}
.modal{background:#fff;border-radius:18px 18px 0 0;width:100%;max-width:640px;max-height:92vh;overflow:auto;padding:22px}
@media(min-width:680px){.modal-bg{align-items:center;padding:20px}.modal{border-radius:18px}}
/* mobile-first builder */
.builder-line{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
.builder-line .top{display:flex;gap:8px;align-items:flex-start}
.builder-line .name{font-weight:600;font-size:14px;flex:1}
.builder-line .cat{font-family:var(--disp);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--emerald-d)}
.builder-line .ctrls{display:flex;gap:8px;align-items:center;margin-top:8px}
.builder-line .ctrls input{width:70px;text-align:center;padding:7px} .builder-line .ctrls .price{width:120px}
.builder-line .lt{font-family:var(--disp);font-weight:700;color:var(--navy);margin-left:auto}
.iconbtn{border:none;background:var(--mist);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:15px;color:var(--muted)}
.iconbtn:hover{background:var(--line)}
.totalbar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:14px 16px;margin:0 -16px;display:flex;align-items:center;gap:14px}
.totalbar .t{font-family:var(--disp);font-weight:700;font-size:20px;color:var(--navy)}
.lib-item{display:flex;justify-content:space-between;align-items:center;padding:11px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;cursor:pointer}
.lib-item:hover{border-color:var(--emerald);background:var(--mist)}
.split{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:860px){.split{grid-template-columns:1fr 320px}}
.empty{text-align:center;color:var(--muted);padding:40px 20px}
.trash{background:none;border:0;cursor:pointer;font-size:16px;opacity:.55;padding:4px 8px;border-radius:8px;line-height:1;transition:.15s}
.trash:hover{opacity:1;background:rgba(226,87,76,.12)}
.taskbadge{display:inline-block;margin-top:4px;font-size:11px;font-weight:600;color:var(--amber);background:rgba(245,158,11,.12);border-radius:99px;padding:2px 8px}
.actrow{padding:8px 0;border-top:1px solid var(--line)}
.actrow:first-of-type{border-top:0}
.actmeta{font-size:11.5px;color:var(--muted)}
.actbody{font-size:13.5px;color:var(--ink);white-space:pre-wrap;margin-top:2px}
.leadgrid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:880px){.leadgrid{grid-template-columns:1.5fr 1fr}}
.vtoggle{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-right:8px}
.vtoggle .btn{border:0;border-radius:0}
.btn.ghost.sm.on{background:var(--navy);color:#fff}
.viewchip{display:inline-flex;align-items:center;font-size:12px;background:var(--mist);border:1px solid var(--line);border-radius:99px;padding:3px 10px}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:140px}
.kcol.over{border-color:var(--emerald);background:rgba(16,185,129,.07)}
.kcolhead{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--navy);margin-bottom:8px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;cursor:pointer;font-size:13px}
.kcard:hover{border-color:var(--emerald)}
.kcard.dragging{opacity:.45}
