/* ===================================================================
   CRM COCINAS TERRA · Hoja de estilos
   Marca: fondo NEGRO · texto BLANCO · verde #04E90B
   Diseño responsive (móvil primero)
=================================================================== */
:root{
  --negro:#000000;
  --negro2:#0d0d0d;
  --negro3:#161616;
  --linea:#262626;
  --verde:#04E90B;
  --verde-op:rgba(4,233,11,.14);
  --blanco:#ffffff;
  --gris:#9aa0a6;
  --rojo:#e02424;
  --amber:#f5a623;
  --azul:#2d9cdb;
  --radio:14px;
  --sombra:0 8px 30px rgba(0,0,0,.55);
  --sb-ancho:248px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--negro);
  color:var(--blanco);
  font-family:'Segoe UI',Roboto,-apple-system,Helvetica,Arial,sans-serif;
  font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%;
}
a{color:var(--verde);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{color:var(--verde);margin:.2rem 0 .8rem;line-height:1.2}
h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.05rem}
small,.muted{color:var(--gris)}
hr{border:none;border-top:1px solid var(--linea);margin:1rem 0}

/* ---------- Layout ---------- */
.app{display:flex;min-height:100vh}
.sidebar{
  width:var(--sb-ancho);background:var(--negro2);border-right:1px solid var(--linea);
  position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:40;
  transition:transform .25s ease;
}
.sidebar .brand{padding:14px 16px;text-align:center;border-bottom:1px solid var(--linea)}
.sidebar .brand img{max-width:170px;width:100%;height:auto;display:block;margin:0 auto}
.nav{list-style:none;margin:0;padding:8px}
.nav .grupo{color:var(--gris);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:12px 12px 4px}
.nav a{
  display:flex;align-items:center;gap:10px;color:var(--blanco);
  padding:11px 12px;border-radius:10px;font-weight:500;margin-bottom:2px;
}
.nav a .ic{width:20px;text-align:center;font-size:1rem;flex:0 0 20px}
.nav a:hover{background:var(--negro3);text-decoration:none}
.nav a.on{background:var(--verde-op);color:var(--verde)}
.nav a.on .ic{color:var(--verde)}

.main{flex:1;margin-left:var(--sb-ancho);min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:12px;padding:12px 20px;
  background:var(--negro2);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:30;
}
.topbar .hamb{display:none;background:none;border:none;color:var(--verde);font-size:1.6rem;cursor:pointer;line-height:1}
.topbar .title{font-weight:700;color:var(--verde);font-size:1.05rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .topsearch{margin-left:auto}
.topbar .topsearch input{min-height:38px;padding:8px 12px;width:200px;background:var(--negro);border:1px solid var(--linea);border-radius:999px;font-size:14px}
.topbar .user{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--gris)}
.topbar .user b{color:var(--blanco)}
.content{padding:20px;max-width:1200px;width:100%}

/* Overlay para menú móvil */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:35}
.overlay.show{display:block}

/* ---------- Tarjetas ---------- */
.card{background:var(--negro2);border:1px solid var(--linea);border-radius:var(--radio);padding:18px;margin-bottom:18px}
.card h2,.card h3{margin-top:0}
.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}

/* KPI */
.kpi{background:var(--negro2);border:1px solid var(--linea);border-radius:var(--radio);padding:16px;position:relative;overflow:hidden}
.kpi .lbl{color:var(--gris);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.kpi .val{font-size:1.7rem;font-weight:800;color:var(--blanco);margin-top:6px}
.kpi .val.verde{color:var(--verde)}
.kpi::after{content:"";position:absolute;right:-20px;top:-20px;width:70px;height:70px;background:var(--verde-op);border-radius:50%}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  background:var(--negro3);color:var(--blanco);border:1px solid var(--linea);
  padding:11px 16px;border-radius:10px;font-weight:600;cursor:pointer;font-size:.95rem;
  min-height:44px;transition:.15s;text-decoration:none;
}
.btn:hover{border-color:var(--verde);text-decoration:none}
.btn-primary{background:var(--verde);color:#000;border-color:var(--verde)}
.btn-primary:hover{filter:brightness(1.08)}
.btn-danger{background:transparent;color:var(--rojo);border-color:var(--rojo)}
.btn-ghost{background:transparent}
.btn-sm{padding:7px 11px;min-height:36px;font-size:.85rem}
.btn-block{width:100%}
.btn-wa{background:#25D366;color:#000;border-color:#25D366}

/* ---------- Formularios ---------- */
.form-row{margin-bottom:14px}
label{display:block;margin-bottom:6px;font-weight:600;font-size:.9rem}
input,select,textarea{
  width:100%;background:var(--negro);color:var(--blanco);border:1px solid var(--linea);
  border-radius:10px;padding:12px;font-size:16px;font-family:inherit;min-height:46px;
}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 2px var(--verde-op)}
select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2304E90B'><path d='M2 4l4 4 4-4z'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}
.form-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.form-inline .form-row{flex:1;min-width:160px;margin-bottom:0}
.hint{font-size:.8rem;color:var(--gris);margin-top:4px}
.check{display:flex;align-items:center;gap:8px}
.check input{width:auto;min-height:auto;transform:scale(1.3);accent-color:var(--verde)}

/* ---------- Tablas ---------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radio)}
table.data{width:100%;border-collapse:collapse;background:var(--negro2);min-width:520px}
table.data th{background:#000;color:var(--verde);text-align:left;padding:12px;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--verde)}
table.data td{padding:12px;border-bottom:1px solid var(--linea);vertical-align:middle}
table.data tr:hover td{background:var(--negro3)}
table.data td.num,table.data th.num{text-align:right;white-space:nowrap}
table.data .acts{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- Badges / estatus ---------- */
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;
  color:var(--bc,#fff);background:color-mix(in srgb,var(--bc,#fff) 16%,transparent);
  border:1px solid var(--bc,#fff)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--bc,#fff);margin-right:6px;vertical-align:middle}

/* ---------- Flash ---------- */
.flashes{margin-bottom:14px}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:8px;border:1px solid;display:flex;gap:8px}
.flash.ok{border-color:var(--verde);background:var(--verde-op);color:var(--verde)}
.flash.error{border-color:var(--rojo);background:rgba(224,36,36,.12);color:#ff9a9a}
.flash.info{border-color:var(--azul);background:rgba(45,156,219,.12);color:#9ad4f5}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(circle at 50% 0%,#0d0d0d,#000 70%)}
.login-box{width:100%;max-width:380px;background:var(--negro2);border:1px solid var(--linea);border-radius:20px;padding:28px;box-shadow:var(--sombra)}
.login-box .logo{text-align:center;margin-bottom:18px}
.login-box .logo img{max-width:220px;width:100%}
.pin-input{letter-spacing:.5em;text-align:center;font-size:1.4rem}

/* ---------- Utilidades ---------- */
.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.mb0{margin-bottom:0}.mt0{margin-top:0}.tc{text-align:center}.tr{text-align:right}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--linea);font-size:.85rem;color:var(--blanco);background:var(--negro3)}
.chip.on{border-color:var(--verde);color:var(--verde);background:var(--verde-op)}
.totales{margin-left:auto;max-width:320px}
.totales .lin{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--linea)}
.totales .lin.tot{border-bottom:none;font-size:1.2rem;font-weight:800;color:var(--verde)}
.empty{text-align:center;color:var(--gris);padding:40px 10px}

/* ---------- Calendario ---------- */
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .dow{text-align:center;color:var(--gris);font-size:.72rem;text-transform:uppercase;padding:4px 0;font-weight:700}
.cal .cell{background:var(--negro2);border:1px solid var(--linea);border-radius:8px;min-height:96px;padding:6px;position:relative;overflow:hidden}
.cal .cell.empty{background:transparent;border:none}
.cal .cell.today{border-color:var(--verde);box-shadow:0 0 0 1px var(--verde)}
.cal .cell .d{font-size:.8rem;color:var(--gris);font-weight:700;display:flex;justify-content:space-between;align-items:center}
.cal .cell .d a{color:var(--gris);text-decoration:none;font-size:1rem;line-height:1}
.cal .cell.today .d{color:var(--verde)}
.cal .ev{display:block;font-size:.72rem;padding:2px 5px;border-radius:5px;margin-top:3px;color:#000;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--ec,#04E90B)}
.cal .ev.cancel{text-decoration:line-through;opacity:.5}
@media (max-width:760px){
  .cal{gap:3px}
  .cal .cell{min-height:64px;padding:3px;border-radius:6px}
  .cal .dow{font-size:.6rem}
  .cal .ev{font-size:0;padding:0;height:8px;width:8px;border-radius:50%;display:inline-block;margin:2px 2px 0 0}
  .cal .cell .d{font-size:.72rem}
}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .grid.cols-3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  :root{--sb-ancho:0px}
  .sidebar{transform:translateX(-100%);width:250px}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .topbar .hamb{display:block}
  .content{padding:14px}
  .topbar .topsearch{display:none}
  .grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}

  /* Tablas apiladas en móvil */
  table.data.stack{min-width:0}
  table.data.stack thead{display:none}
  table.data.stack tr{display:block;border:1px solid var(--linea);border-radius:12px;margin-bottom:12px;padding:6px 12px;background:var(--negro2)}
  table.data.stack td{display:flex;justify-content:space-between;gap:12px;border:none;border-bottom:1px solid var(--linea);padding:9px 0;text-align:right}
  table.data.stack td:last-child{border-bottom:none}
  table.data.stack td::before{content:attr(data-l);color:var(--gris);font-weight:600;text-align:left;text-transform:uppercase;font-size:.72rem;letter-spacing:.03em}
  table.data.stack td.acts{justify-content:flex-end}
  table.data.stack td.acts::before{content:""}
  .totales{margin-left:0;max-width:none}
}
@media (min-width:761px){
  .sidebar{transform:none !important}
  .only-mobile{display:none}
}
