:root{
  --midnight:#030F2B;--white:#FFFFFF;--cream:#F7F3ED;--mist:#EEF1F6;--line:#E3E7EF;--rule:#C9CEDB;
  --slate:#55626E;--navy2:#2B364F;--side-text:#D5DAE6;
  --hot:#984126;--hot-bg:#FBE9E4;--warm:#7A5A12;--warm-bg:#F6EFDC;--done:#4A5139;--done-bg:#E9EEDB;--info:#2B364F;--info-bg:#E0E5F0;
  --serif:'Playfair Display',Georgia,serif;--sans:'Helvetica Neue',Helvetica,Arial,sans-serif;--r:4px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--white);color:var(--midnight);font-family:var(--sans);font-size:15px;line-height:1.5}
a{color:var(--midnight)}a:hover{color:var(--slate)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--midnight);outline-offset:2px}
h1,h2,h3{margin:0;font-weight:400}
.serif{font-family:var(--serif)}
.label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--slate);font-weight:600}
.muted{color:var(--slate)}
.sr{position:absolute;left:-9999px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r);
  border:1px solid var(--midnight);background:var(--white);color:var(--midnight);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:opacity .15s,background-color .15s}
.btn:hover{background:var(--mist);color:var(--midnight)}
.btn.primary{background:var(--midnight);color:var(--white)}
.btn.primary:hover{opacity:.9;background:var(--midnight);color:var(--white)}
.btn.quiet{border-color:var(--rule)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.chip{min-height:40px;padding:0 14px;border-radius:var(--r);border:1px solid var(--rule);background:var(--white);cursor:pointer;font-size:13px}
.chip[aria-pressed="true"]{background:var(--midnight);border-color:var(--midnight);color:var(--white)}

/* tags */
.tag{display:inline-block;padding:3px 9px;font-size:12px;font-weight:600;border-radius:3px;background:var(--mist);color:var(--navy2)}
.tag.hot{background:var(--hot-bg);color:var(--hot)}.tag.warm{background:var(--warm-bg);color:var(--warm)}
.tag.cold{background:var(--mist);color:var(--navy2)}.tag.done{background:var(--done-bg);color:var(--done)}
.tag.info{background:var(--info-bg);color:var(--info)}.tag.unreachable{background:var(--warm-bg);color:var(--warm)}

/* inputs */
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px;font-weight:600}
.input,textarea.input,select.input{min-height:48px;padding:10px 14px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);width:100%}
textarea.input{line-height:1.6;resize:vertical}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px}

/* shell */
.shell{display:flex;min-height:100vh;flex-wrap:wrap}
.side{flex:0 0 240px;background:var(--midnight);color:var(--white);padding:28px 20px;display:flex;flex-direction:column;gap:24px}
.side img{height:18px;width:auto;align-self:flex-start;filter:invert(1)}
.side .add{background:var(--white);color:var(--midnight);border:0;font-weight:600;width:100%}
.side .add:hover{background:var(--cream);color:var(--midnight)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{color:var(--side-text);padding:11px 14px;border-radius:var(--r);text-decoration:none}
.nav a:hover{background:rgba(255,255,255,.08);color:var(--white)}
.nav a[aria-current="page"]{background:var(--white);color:var(--midnight);font-weight:600}
.side .who{margin-top:auto;font-size:13px;color:var(--side-text);display:flex;flex-direction:column;gap:8px}
.side .who button{background:none;border:0;color:var(--side-text);text-align:left;padding:4px 0;cursor:pointer;text-decoration:underline}
.main{flex:1 1 560px;min-width:0;padding:40px clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:28px;max-width:1240px}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.head h1{font-family:var(--serif);font-size:clamp(32px,4vw,44px);line-height:1.1}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.panel{background:var(--cream);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat .n{font-family:var(--serif);font-size:36px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:13px;font-weight:500;color:var(--slate);padding:12px 16px}
td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:middle}
.scroll{overflow-x:auto}
.empty{padding:28px;text-align:center;color:var(--slate)}

/* today */
.tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tasks li{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:18px 22px;border:1px solid var(--line);border-radius:var(--r)}
.tasks .num{font-family:var(--serif);font-size:26px;width:26px}
.tasks .t{flex:1 1 300px;display:flex;flex-direction:column;gap:2px}

/* pipeline */
.board{display:grid;grid-template-columns:repeat(8,minmax(200px,1fr));gap:12px;min-width:1700px}
.col{background:var(--cream);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:520px}
.col.drop{outline:2px dashed var(--midnight)}
.col h2{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;display:flex;justify-content:space-between}
.pcard{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;cursor:grab}
.pcard:hover{border-color:var(--midnight)}
.pcard .d{font-weight:600}

/* prospect */
.bar{position:sticky;top:0;z-index:5;background:var(--white);border-top:1px solid var(--midnight);border-bottom:1px solid var(--line);padding:12px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.steps{margin:0 0 0 auto;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.steps li{padding:6px 10px;border-radius:3px;background:var(--cream);color:var(--slate)}
.steps li.ok{background:var(--done-bg);color:var(--done)}.steps li.now{background:var(--midnight);color:var(--white)}
.cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.c3{flex:3 1 460px;min-width:0;display:flex;flex-direction:column;gap:20px}
.c2{flex:2 1 320px;min-width:0;display:flex;flex-direction:column;gap:20px}
.finding{display:flex;flex-wrap:wrap;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.finding .n{font-family:var(--serif);font-size:24px;width:22px}
.ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.ledger div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.score{text-align:center;min-width:92px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r)}
.score .n{font-family:var(--serif);font-size:32px}
.email{white-space:pre-wrap;font-size:14px;line-height:1.7;background:var(--cream);padding:16px;border-radius:var(--r)}

/* design */
.choice{text-align:left;min-height:92px;padding:16px 18px;border:1px solid var(--rule);border-radius:var(--r);background:var(--white);cursor:pointer}
.choice[aria-checked="true"]{border:2px solid var(--midnight)}
.swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);cursor:pointer;min-width:76px}
.swatch[aria-checked="true"]{border:2px solid var(--midnight)}
.swatch i{display:block;width:40px;height:40px;border:1px solid var(--rule)}
.check{display:flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid var(--line)}
.check input{width:20px;height:20px;accent-color:var(--midnight)}
.ok-box{padding:12px 14px;border-radius:var(--r);background:var(--done-bg);color:var(--done);font-size:13px}
.warn-box{padding:12px 14px;border-radius:var(--r);background:var(--warm-bg);color:var(--warm);font-size:13px}
.err-box{padding:12px 14px;border-radius:var(--r);background:var(--hot-bg);color:var(--hot);font-size:13px}

/* sign in */
.auth{display:flex;flex-wrap:wrap;min-height:100vh;background:var(--cream)}
.auth .brand{flex:1 1 420px;background:var(--white);border-right:1px solid var(--line);padding:56px clamp(24px,6vw,96px);display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.auth .brand img{height:18px;width:auto;align-self:flex-start}
.auth .brand h1{font-family:var(--serif);font-size:clamp(34px,4vw,52px);line-height:1.08;max-width:460px}
.auth .form{flex:1 1 420px;padding:56px clamp(24px,6vw,96px);display:flex;align-items:center;justify-content:center}
.auth form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}
.auth h2{font-family:var(--serif);font-size:32px}

#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--midnight);color:var(--white);padding:12px 18px;border-radius:var(--r);font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}
#toast.show{opacity:1}

@media (max-width:820px){
  .side{flex:1 1 100%;padding:16px 20px;gap:12px}
  .nav{flex-direction:row;flex-wrap:wrap}
  .side .who{margin-top:0;flex-direction:row;gap:16px}
  .g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ledger,.g2{grid-template-columns:1fr}
  .steps{margin-left:0}
}
