:root{
  --bg0:#071420;
  --bg1:#0E2433;
  --bg2:#102A43;
  --panel:#15304A;
  --border:rgba(184,156,94,.22);
  --line:rgba(255,255,255,.08);
  --text:#F3F6F8;
  --muted:#A8B4C0;
  --gold:#C6A45A;
  --gold2:#E2C07A;
  --green:#7DCEA0;
  --danger:#f0b4b4;
  --font:"Outfit",system-ui,sans-serif;
  --display:"Cormorant Garamond",Georgia,serif;
  --sidebar:248px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{
  font-family:var(--font);
  color:var(--text);
  background:linear-gradient(165deg,var(--bg0),var(--bg1) 50%,#0A1824);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.display{font-family:var(--display);font-weight:560}

/* Auth */
.crm-auth{
  min-height:100vh;display:grid;place-items:center;padding:24px;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(198,164,90,.14), transparent 55%),
    linear-gradient(165deg,var(--bg0),var(--bg1) 50%,#0A1824);
}
.crm-auth-card{
  width:min(420px,100%);
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid var(--border);
  border-radius:18px;
  padding:28px 26px 24px;
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.crm-auth-brand{text-align:center;margin-bottom:1.4rem}
.crm-auth-brand img{margin:0 auto 12px;width:52px;height:auto}
.crm-auth-brand h1{font-family:var(--display);font-size:2rem;font-weight:560}
.crm-auth-brand p{color:var(--muted);font-size:.9rem;margin-top:4px}
.crm-auth label{display:block;font-size:.78rem;color:var(--muted);margin:12px 0 6px}
.crm-auth input{
  width:100%;padding:12px 14px;border-radius:10px;
  border:1px solid var(--line);background:#050b12;
}
.crm-auth input:focus{outline:none;border-color:color-mix(in srgb,var(--gold) 55%, transparent)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 16px;border-radius:10px;border:1px solid var(--line);
  background:transparent;cursor:pointer;font-weight:600;
}
.btn.primary{
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:#1a1408;border-color:transparent;width:100%;margin-top:16px;
}
.btn.ghost{background:rgba(255,255,255,.03)}
.btn.sm{padding:7px 11px;font-size:.82rem;border-radius:8px}
.err-box{
  margin-top:12px;padding:10px 12px;border-radius:10px;font-size:.86rem;
  color:#fecaca;border:1px solid rgba(240,168,168,.35);background:rgba(240,168,168,.08);
}
.flash-ok{
  margin-bottom:14px;padding:10px 12px;border-radius:10px;font-size:.86rem;
  color:var(--green);border:1px solid rgba(125,206,160,.35);background:rgba(125,206,160,.08);
}

/* App shell */
.crm-app{display:flex;min-height:100vh}
.crm-sidebar{
  width:var(--sidebar);flex-shrink:0;
  background:rgba(5,11,18,.72);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:18px 14px;
  position:sticky;top:0;height:100vh;
}
.crm-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 18px}
.crm-brand img{width:36px;height:auto;border-radius:8px}
.crm-brand strong{display:block;font-family:var(--display);font-size:1.35rem;line-height:1}
.crm-brand span{font-size:.72rem;color:var(--gold);letter-spacing:.08em;text-transform:uppercase}
.crm-nav{display:flex;flex-direction:column;gap:4px;flex:1}
.crm-nav a{
  padding:10px 12px;border-radius:10px;color:var(--muted);font-weight:500;font-size:.92rem;
}
.crm-nav a:hover{background:rgba(255,255,255,.04);color:var(--text)}
.crm-nav a.active{
  background:color-mix(in srgb, var(--gold) 16%, transparent);
  border:1px solid color-mix(in srgb, var(--gold) 35%, transparent);
  color:var(--gold2);
}
.crm-sidebar-foot{border-top:1px solid var(--line);padding-top:14px;margin-top:12px}
.crm-user strong{display:block;font-size:.9rem}
.crm-user span{font-size:.72rem;color:var(--muted);text-transform:uppercase}
.crm-logout{display:inline-block;margin-top:10px;font-size:.82rem;color:var(--muted)}
.crm-logout:hover{color:var(--gold2)}
.crm-main{flex:1;min-width:0;display:flex;flex-direction:column}
.crm-top{
  padding:22px 28px 8px;
  border-bottom:1px solid transparent;
}
.crm-top h1{font-size:1.85rem}
.crm-content{padding:18px 28px 40px}

/* Cards / tables */
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.kpi{
  background:rgba(21,48,74,.55);
  border:1px solid var(--line);
  border-radius:14px;padding:16px 16px 14px;
}
.kpi span{display:block;font-size:.75rem;color:var(--muted);margin-bottom:6px}
.kpi strong{font-size:1.55rem;font-weight:600}
.panel{
  background:rgba(21,48,74,.45);
  border:1px solid var(--line);
  border-radius:14px;padding:16px;margin-bottom:18px;
}
.panel h2{font-family:var(--display);font-size:1.35rem;margin-bottom:12px;font-weight:560}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:14px}
.toolbar label{display:flex;flex-direction:column;gap:5px;font-size:.72rem;color:var(--muted)}
.toolbar input,.toolbar select, .field input,.field select,.field textarea{
  padding:9px 11px;border-radius:9px;border:1px solid var(--line);background:#050b12;min-width:140px;
}
.field{margin-bottom:12px}
.field label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:5px}
.table-wrap{overflow:auto}
table.crm{
  width:100%;border-collapse:collapse;font-size:.88rem;
}
table.crm th{
  text-align:left;color:var(--muted);font-size:.72rem;text-transform:uppercase;
  letter-spacing:.04em;padding:10px 8px;border-bottom:1px solid var(--line);font-weight:500;
}
table.crm td{padding:12px 8px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
table.crm tr:hover td{background:rgba(255,255,255,.02)}
.badge{
  display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;
  font-size:.72rem;font-weight:600;border:1px solid var(--line);background:rgba(255,255,255,.04);
}
.muted{color:var(--muted)}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Pipeline kanban */
.kanban{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px;
  align-items:start;
}
.kanban-col{
  background:rgba(5,11,18,.45);
  border:1px solid var(--line);
  border-radius:14px;min-height:320px;
  padding:10px;
}
.kanban-col h3{
  font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);padding:6px 6px 10px;display:flex;justify-content:space-between;
}
.kanban-card{
  background:rgba(21,48,74,.7);
  border:1px solid var(--border);
  border-radius:12px;padding:12px;margin-bottom:8px;cursor:grab;
}
.kanban-card:active{cursor:grabbing}
.kanban-card strong{display:block;font-size:.92rem;margin-bottom:4px}
.kanban-card .meta{font-size:.75rem;color:var(--muted);line-height:1.4}
.kanban-col.drag-over{outline:1px dashed var(--gold)}

/* Lead detail */
.lead-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.timeline{list-style:none}
.timeline li{
  padding:12px 0;border-bottom:1px solid var(--line);font-size:.88rem;
}
.timeline .when{font-size:.72rem;color:var(--muted);margin-bottom:4px}
.split{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

@media (max-width:1100px){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lead-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  .crm-app{flex-direction:column}
  .crm-sidebar{position:relative;height:auto;width:100%;border-right:0;border-bottom:1px solid var(--line)}
  .crm-nav{flex-direction:row;flex-wrap:wrap}
}
