/* ============================================================
   MULTIMEDIGITAL CRM — design system (SIGNAL+)
   ============================================================ */
:root{
  --ink:#0A0A0A; --carbon:#0D0E14; --graphite:#16171D; --graphite2:#1B1C24;
  --steel:#26272F; --steel-soft:#1F1F27;
  --pearl:#F5F5F7; --fog:#A3A3AD; --smoke:#6B7280;
  --signal:#FF3B30; --signal-soft:#FF6659; --signal-deep:#D62F26;
  --signal-glow:rgba(255,59,48,.28); --signal-glow-soft:rgba(255,59,48,.08);
  --green:#34C759; --amber:#F5A623; --violet:#5E5CE6;
  --font-brutal:'Archivo Black',sans-serif;
  --font-body:'Inter Tight','Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --r:12px; --r-sm:8px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ink); color:var(--pearl);
  font-family:var(--font-body); font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
::selection{background:var(--signal);color:#fff}

/* ── App shell ── */
.app{display:flex; min-height:100vh}
.sidebar{
  width:264px; flex-shrink:0; background:var(--carbon);
  border-right:1px solid var(--steel);
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.main-wrap{flex:1; min-width:0; display:flex; flex-direction:column}

/* ── Brand ── */
.brand{display:flex; flex-direction:column; gap:2px; padding:22px 22px 18px; text-decoration:none; border-bottom:1px solid var(--steel)}
.brand-mark{font-family:var(--font-brutal); font-size:17px; letter-spacing:-.02em; color:var(--pearl); line-height:1}
.brand-accent{color:var(--signal)}
.brand-sub{font-family:var(--font-mono); font-size:10px; letter-spacing:.28em; color:var(--smoke); text-transform:uppercase; margin-top:4px}

/* ── Nav ── */
.nav{padding:14px 12px; display:flex; flex-direction:column; gap:3px; flex:1}
.nav-item{
  display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:var(--r-sm);
  text-decoration:none; color:var(--fog); font-weight:500; font-size:14.5px;
  transition:background .15s ease,color .15s ease; position:relative;
}
.nav-item:hover{background:var(--graphite); color:var(--pearl)}
.nav-item.is-active{background:var(--graphite); color:var(--pearl)}
.nav-item.is-active::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0; background:var(--signal)}
.nav-icon{width:20px; text-align:center; color:var(--signal); font-size:14px}
.nav-item.is-soon{opacity:.5; cursor:default}
.nav-item.is-soon:hover{background:transparent; color:var(--fog)}
.nav-badge{margin-left:auto; font-family:var(--font-mono); font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--smoke); border:1px solid var(--steel); border-radius:20px; padding:2px 7px}
.sidebar-foot{padding:16px 22px; border-top:1px solid var(--steel)}
.sidebar-status{font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--smoke); display:flex; align-items:center; gap:8px}
.sidebar-status .dot{width:7px; height:7px; border-radius:50%; background:var(--signal); box-shadow:0 0 10px var(--signal)}

/* ── Topbar ── */
.topbar{
  height:68px; display:flex; align-items:center; justify-content:space-between;
  padding:0 32px; border-bottom:1px solid var(--steel); background:rgba(13,14,20,.7);
  backdrop-filter:blur(10px); position:sticky; top:0; z-index:20;
}
.page-title{font-family:var(--font-brutal); font-size:20px; letter-spacing:-.01em; margin:0; text-transform:uppercase}
.topbar-right{display:flex; align-items:center; gap:14px}
.user-chip{display:flex; align-items:center; gap:10px}
.user-avatar{width:32px; height:32px; border-radius:50%; background:var(--signal); color:#fff; display:grid; place-items:center; font-weight:800; font-size:14px}
.user-name{font-size:14px; color:var(--pearl)}

/* ── Content ── */
.content{padding:32px; max-width:1400px; width:100%}

/* ── Buttons ── */
.btn{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--steel); background:var(--graphite); color:var(--pearl); font-family:var(--font-body); font-weight:600; font-size:14px; padding:11px 18px; border-radius:var(--r-sm); cursor:pointer; text-decoration:none; transition:all .15s ease}
.btn:hover{border-color:var(--smoke)}
.btn-primary{background:var(--signal); border-color:var(--signal); color:#fff; font-family:var(--font-mono); font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase}
.btn-primary:hover{background:var(--signal-deep); border-color:var(--signal-deep)}
.btn-ghost{background:transparent}
.btn-sm{padding:8px 14px; font-size:13px}
.btn-danger{color:var(--signal); border-color:var(--steel)}
.btn-danger:hover{border-color:var(--signal)}

/* ── Cards / panels ── */
.card{background:var(--graphite); border:1px solid var(--steel); border-radius:var(--r); padding:24px}
.card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px}
.card-title{font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--fog); font-weight:600; margin:0}
.grid{display:grid; gap:20px}
.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.grid-2{grid-template-columns:1.6fr 1fr}
@media(max-width:900px){.grid-2{grid-template-columns:1fr}}

/* ── KPI tiles ── */
.kpi{background:var(--graphite); border:1px solid var(--steel); border-radius:var(--r); padding:22px; position:relative; overflow:hidden}
.kpi::after{content:""; position:absolute; right:-40px; top:-40px; width:120px; height:120px; background:radial-gradient(circle,var(--signal-glow-soft),transparent 70%)}
.kpi-label{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--smoke); margin-bottom:12px}
.kpi-value{font-family:var(--font-brutal); font-size:38px; line-height:1; color:var(--pearl)}
.kpi-value .unit{font-size:16px; color:var(--fog); margin-left:4px}
.kpi-delta{margin-top:10px; font-size:12.5px; color:var(--fog)}
.kpi-delta.up{color:var(--green)} .kpi-delta.down{color:var(--signal)}

/* ── Tables ── */
.table-wrap{overflow-x:auto; border:1px solid var(--steel); border-radius:var(--r); background:var(--graphite)}
table.data{width:100%; border-collapse:collapse; font-size:14px}
table.data th{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--smoke); text-align:left; padding:14px 18px; border-bottom:1px solid var(--steel); font-weight:600; white-space:nowrap}
table.data td{padding:15px 18px; border-bottom:1px solid var(--steel-soft); vertical-align:middle}
table.data tr:last-child td{border-bottom:none}
table.data tbody tr{transition:background .12s ease}
table.data tbody tr:hover{background:var(--graphite2)}
.row-link{cursor:pointer}
.cell-strong{color:var(--pearl); font-weight:600}
.cell-muted{color:var(--fog)}
.cell-mono{font-family:var(--font-mono); font-size:12.5px; color:var(--fog)}

/* ── Badges ── */
.badge{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.03em; padding:5px 11px; border-radius:20px; border:1px solid transparent; white-space:nowrap}
.badge .dot{width:7px; height:7px; border-radius:50%}
.badge-soft{background:var(--steel-soft); color:var(--fog); border-color:var(--steel)}

/* ── Forms ── */
.form-row{margin-bottom:18px}
.label{display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--fog); margin-bottom:9px; font-weight:600}
.input,.select,.textarea{width:100%; padding:12px 14px; background:var(--graphite); border:1px solid var(--steel); border-radius:var(--r-sm); color:var(--pearl); font-family:var(--font-body); font-size:15px; outline:none; transition:border-color .15s ease,box-shadow .15s ease}
.input:focus,.select:focus,.textarea:focus{border-color:var(--signal); box-shadow:0 0 0 3px var(--signal-glow-soft)}
.textarea{resize:vertical; min-height:120px}
select.select{appearance:none; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23A3A3AD' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:38px}

/* ── Alerts ── */
.alert{padding:14px 18px; border-radius:var(--r-sm); margin-bottom:22px; font-size:14px; border:1px solid}
.alert-success{background:rgba(52,199,89,.08); border-color:var(--green); color:#b8f0c8}
.alert-error{background:var(--signal-glow-soft); border-color:var(--signal); color:#ffc9c5}

/* ── Toolbar / filters ── */
.toolbar{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:22px}
.toolbar .input,.toolbar .select{width:auto}
.toolbar .search{min-width:260px; flex:1}
.spacer{flex:1}

/* ── Timeline (lead detail) ── */
.timeline{display:flex; flex-direction:column; gap:0}
.tl-item{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--steel-soft)}
.tl-item:last-child{border-bottom:none}
.tl-dot{width:10px; height:10px; border-radius:50%; background:var(--signal); margin-top:6px; flex-shrink:0}
.tl-body{flex:1}
.tl-meta{font-family:var(--font-mono); font-size:11px; color:var(--smoke); margin-top:4px}

/* ── Detail layout ── */
.detail-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:24px}
@media(max-width:900px){.detail-grid{grid-template-columns:1fr}}
.kv{display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--steel-soft)}
.kv:last-child{border-bottom:none}
.kv-k{color:var(--smoke); font-size:13px}
.kv-v{color:var(--pearl); font-size:14px; text-align:right; word-break:break-word}
.kv-v a{color:var(--signal-soft); text-decoration:none}

/* ── Empty state ── */
.empty{text-align:center; padding:60px 20px; color:var(--fog)}
.empty-emoji{font-size:34px; margin-bottom:14px}

/* ── Login ── */
.login-wrap{min-height:100vh; display:grid; place-items:center; padding:20px;
  background:radial-gradient(circle at 50% 20%,var(--signal-glow-soft),transparent 55%),var(--ink)}
.login-card{width:100%; max-width:400px; background:var(--graphite); border:1px solid var(--steel); border-radius:16px; padding:40px 34px}
.login-brand{font-family:var(--font-brutal); font-size:22px; text-align:center; margin-bottom:4px}
.login-sub{font-family:var(--font-mono); font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--smoke); text-align:center; margin-bottom:30px}
.muted{color:var(--fog)}
.mono{font-family:var(--font-mono)}
.mt-0{margin-top:0}

/* ── Responsive ── */
@media(max-width:760px){
  .sidebar{position:fixed; z-index:50; transform:translateX(-100%); transition:transform .2s ease; box-shadow:0 0 40px rgba(0,0,0,.5)}
  .sidebar.open{transform:translateX(0)}
  .content{padding:20px}
  .menu-toggle{display:inline-flex !important}
}
.menu-toggle{display:none; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid var(--steel); background:var(--graphite); border-radius:var(--r-sm); color:var(--pearl); font-size:18px; cursor:pointer; margin-right:4px}
