:root{
  --rojo:#D40909;
  --rojo-osc:#a30707;
  --oro:#D4AF37;
  --gris:#2E2E2E;
  --gris-2:#444;
  --gris-cl:#f4f4f6;
  --borde:#e2e2e6;
  --verde:#1f9d3f;
  --amar:#D4AF37;
  --sombra:0 2px 14px rgba(0,0,0,.08);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:"Segoe UI",Arial,Helvetica,sans-serif;
  background:#ececed;color:var(--gris);font-size:14px;
}
a{text-decoration:none;color:inherit;}

/* ---------- LAYOUT ---------- */
.layout{display:flex;min-height:100vh;}
.sidebar{
  width:230px;background:var(--gris);color:#fff;flex-shrink:0;
  display:flex;flex-direction:column;position:fixed;height:100vh;z-index:30;
}
.sidebar .brand{
  padding:18px 16px;border-bottom:3px solid var(--rojo);
}
.sidebar .brand .m{font-size:22px;font-weight:900;color:#fff;line-height:1;}
.sidebar .brand .m span{color:var(--oro);}
.sidebar .brand .s{font-size:9px;letter-spacing:1px;color:#bbb;margin-top:3px;text-transform:uppercase;}
.sidebar nav{flex:1;padding:10px 0;overflow-y:auto;}
.sidebar nav a{
  display:flex;align-items:center;gap:11px;padding:11px 18px;
  color:#d8d8d8;font-size:13.5px;border-left:3px solid transparent;transition:.15s;
}
.sidebar nav a svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;}
.sidebar nav a:hover{background:#3a3a3a;color:#fff;}
.sidebar nav a.activo{background:#3a3a3a;color:#fff;border-left-color:var(--rojo);}
.sidebar .user{padding:14px 16px;border-top:1px solid #444;font-size:12px;}
.sidebar .user .nom{font-weight:700;color:#fff;}
.sidebar .user .rol{color:var(--oro);text-transform:uppercase;font-size:10px;letter-spacing:.5px;}
.sidebar .user a.salir{display:inline-block;margin-top:8px;color:#ff8a8a;font-size:12px;}

.main{flex:1;margin-left:230px;}
.topbar{
  background:#fff;border-bottom:1px solid var(--borde);padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;box-shadow:var(--sombra);
}
.topbar h1{font-size:18px;font-weight:800;color:var(--gris);}
.contenido{padding:24px;}

/* ---------- BOTONES ---------- */
.btn{
  display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;
  padding:9px 16px;border-radius:7px;font-size:13.5px;font-weight:700;transition:.15s;
}
.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.btn-rojo{background:var(--rojo);color:#fff;}
.btn-rojo:hover{background:var(--rojo-osc);}
.btn-gris{background:var(--gris);color:#fff;}
.btn-gris:hover{background:#1c1c1c;}
.btn-oro{background:var(--oro);color:var(--gris);}
.btn-oro:hover{filter:brightness(.95);}
.btn-out{background:#fff;border:1.5px solid var(--borde);color:var(--gris);}
.btn-out:hover{border-color:var(--gris);}
.btn-sm{padding:6px 11px;font-size:12px;border-radius:6px;}

/* ---------- TARJETAS / KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:22px;}
.kpi{
  background:#fff;border-radius:12px;padding:18px 20px;box-shadow:var(--sombra);
  display:flex;align-items:center;gap:15px;border-left:5px solid var(--rojo);
}
.kpi.k-oro{border-left-color:var(--oro);}
.kpi.k-verde{border-left-color:var(--verde);}
.kpi.k-gris{border-left-color:var(--gris);}
.kpi .ic{width:46px;height:46px;border-radius:11px;background:var(--gris-cl);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.kpi .ic svg{width:24px;height:24px;stroke:var(--rojo);fill:none;stroke-width:2;}
.kpi.k-oro .ic svg{stroke:var(--oro);}
.kpi.k-verde .ic svg{stroke:var(--verde);}
.kpi.k-gris .ic svg{stroke:var(--gris);}
.kpi .val{font-size:26px;font-weight:900;color:var(--gris);line-height:1;}
.kpi .lbl{font-size:12px;color:#777;margin-top:4px;text-transform:uppercase;letter-spacing:.3px;}

.card{background:#fff;border-radius:12px;box-shadow:var(--sombra);padding:20px;margin-bottom:22px;}
.card h2{font-size:15px;font-weight:800;color:var(--gris);margin-bottom:14px;
  display:flex;align-items:center;gap:8px;}
.card h2 .tag{width:8px;height:18px;background:var(--rojo);border-radius:2px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media(max-width:900px){.grid-2{grid-template-columns:1fr;}}

/* ---------- TABLAS ---------- */
.tabla{width:100%;border-collapse:collapse;font-size:13px;}
.tabla th{background:var(--gris);color:#fff;text-align:left;padding:10px 12px;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.3px;}
.tabla td{padding:9px 12px;border-bottom:1px solid var(--borde);}
.tabla tr:hover td{background:#fafafa;}
.tabla .acc{display:flex;gap:6px;}

.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:800;color:#fff;}
.b-b{background:var(--verde);}
.b-r{background:var(--oro);color:var(--gris);}
.b-m{background:var(--rojo);}
.b-nt{background:#888;}
.b-tienda{background:var(--rojo);}
.b-rest{background:var(--oro);color:var(--gris);}
.pill-rol{background:var(--gris);color:#fff;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;}

/* ---------- FORMULARIOS ---------- */
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px;}
label{display:block;font-size:12px;font-weight:700;color:var(--gris);margin-bottom:5px;text-transform:uppercase;letter-spacing:.3px;}
input[type=text],input[type=password],input[type=date],input[type=email],select,textarea{
  width:100%;padding:9px 11px;border:1.5px solid var(--borde);border-radius:7px;font-size:14px;
  font-family:inherit;background:#fff;color:var(--gris);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rojo);}
textarea{resize:vertical;min-height:60px;}

/* ---------- CHECKLIST FORM ---------- */
.sec-block{margin-bottom:20px;border:1px solid var(--borde);border-radius:10px;overflow:hidden;}
.sec-titulo{background:var(--rojo);color:#fff;padding:9px 14px;font-weight:800;font-size:14px;
  display:flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.3px;}
.sec-titulo svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2;}
.item-fila{display:grid;grid-template-columns:1.4fr 1.7fr 1.5fr;gap:14px;align-items:start;
  padding:11px 14px;border-bottom:1px solid var(--borde);}
.item-fila:last-child{border-bottom:none;}
.item-fila:nth-child(even){background:#fafafa;}
.item-nom{font-weight:600;font-size:13.5px;padding-top:6px;}
.estados{display:flex;gap:5px;flex-wrap:wrap;}
.estados label{display:inline-flex;align-items:center;gap:4px;margin:0;cursor:pointer;
  padding:5px 9px;border:1.5px solid var(--borde);border-radius:7px;font-size:12px;font-weight:700;
  text-transform:none;letter-spacing:0;background:#fff;transition:.12s;}
.estados input{display:none;}
.estados label:hover{border-color:#aaa;}
.estados input:checked + span{}
.estados label.sel-b{background:var(--verde);color:#fff;border-color:var(--verde);}
.estados label.sel-r{background:var(--oro);color:var(--gris);border-color:var(--oro);}
.estados label.sel-m{background:var(--rojo);color:#fff;border-color:var(--rojo);}
.estados label.sel-nt{background:#888;color:#fff;border-color:#888;}
.obs-col textarea{min-height:42px;font-size:13px;}
.file-evi{margin-top:6px;}
.file-evi input[type=file]{font-size:11px;}
.evi-prev{margin-top:6px;max-width:80px;max-height:60px;border-radius:6px;border:1px solid var(--borde);display:none;}

/* ---------- FIRMAS ---------- */
.firmas-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:10px;}
@media(max-width:760px){.firmas-grid{grid-template-columns:1fr;}.item-fila{grid-template-columns:1fr;}}
.firma-box{border:1px solid var(--borde);border-radius:10px;padding:14px;}
.firma-box .ft{font-weight:800;text-transform:uppercase;font-size:12px;margin-bottom:8px;color:var(--gris);}
.canvas-firma{border:2px dashed #ccc;border-radius:8px;background:#fff;width:100%;height:150px;touch-action:none;cursor:crosshair;}
.firma-box .acc-f{display:flex;gap:8px;margin-top:8px;}

/* ---------- LOGIN ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gris) 0%,#1a1a1a 100%);padding:20px;}
.login-card{background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.35);
  width:100%;max-width:390px;overflow:hidden;}
.login-head{background:#fff;padding:26px 30px 20px;text-align:center;border-bottom:4px solid var(--rojo);}
.login-head .s{font-size:10px;letter-spacing:1.5px;color:#999;text-transform:uppercase;}
.login-body{padding:28px 30px 32px;}
.login-body h2{font-size:16px;color:var(--gris);margin-bottom:4px;}
.login-body p.sub{font-size:12px;color:#999;margin-bottom:20px;}
.login-body .campo{margin-bottom:15px;}
.login-body .btn{width:100%;justify-content:center;padding:12px;font-size:15px;}
.alerta{background:#fde8e8;color:#a30707;border:1px solid #f5c2c2;padding:10px 13px;
  border-radius:8px;font-size:13px;margin-bottom:16px;}
.alerta-ok{background:#e7f6ec;color:#1f7a36;border-color:#bfe6cb;}

.barra-acciones{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap;}
.filtros{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.filtros select,.filtros input{padding:7px 10px;}

.vacio{text-align:center;padding:40px;color:#999;}
.mini-barra{height:7px;background:#eee;border-radius:4px;overflow:hidden;display:flex;min-width:90px;}
.mini-barra i{display:block;height:100%;}

@media(max-width:760px){
  .sidebar{transform:translateX(-100%);transition:.25s;}
  .sidebar.abierto{transform:translateX(0);}
  .main{margin-left:0;}
  .menu-toggle{display:inline-flex!important;}
}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;}
.menu-toggle svg{width:26px;height:26px;stroke:var(--gris);fill:none;stroke-width:2;}

/* impresión de la vista */
@media print{
  .sidebar,.topbar,.no-print{display:none!important;}
  .main{margin-left:0;}
  .contenido{padding:0;}
  .card{box-shadow:none;border:1px solid #ccc;}
}
