body{margin:0;background:#eef3f8;color:#092f5f;font-family:Segoe UI,Arial,sans-serif}.layout{display:flex;min-height:100vh}.side{width:280px;background:linear-gradient(#082b55,#061d39);color:white;padding:18px}.brand{display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:16px;margin-bottom:14px}.brand small{display:block;opacity:.8}.logo{width:46px;height:46px;border-radius:14px;background:white;color:#082b55;display:grid;place-items:center;font-weight:900;font-size:24px}.nav{display:block;width:100%;border:0;border-radius:12px;background:transparent;color:white;text-align:left;padding:13px;margin:4px 0;font-weight:800;cursor:pointer}.nav.active,.nav:hover{background:rgba(255,255,255,.15)}.main{flex:1;padding:24px}.top{display:flex;justify-content:space-between;align-items:center}.top h1{font-size:40px;margin:0 0 20px 0}.page{display:none}.page.active{display:block}.panel,.card{background:white;border:1px solid #dbe6f2;border-radius:20px;padding:22px;box-shadow:0 10px 28px rgba(9,47,95,.08);margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card b{display:block;font-size:38px}.grid{display:grid;grid-template-columns:440px 1fr;gap:22px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}label{display:block;font-size:12px;text-transform:uppercase;font-weight:900;color:#52677f;margin-top:10px}input,select{width:100%;padding:11px;border:1px solid #cdd9e8;border-radius:11px;font-size:15px}button{padding:10px 15px;border:0;border-radius:10px;background:#1266d6;color:white;font-weight:900;margin-top:12px;margin-right:8px;cursor:pointer}.danger{background:#dc3545}.hidden{display:none}.msg{display:none;margin-top:12px;background:#e9f2ff;padding:10px;border-radius:10px}.msg.show{display:block}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid #e5edf7;padding:9px;text-align:left;vertical-align:top}.small{font-size:12px;color:#6b7a90}.link{color:#1266d6;font-weight:900}@media(max-width:900px){.layout{display:block}.side{width:auto}.grid,.cards,.three{grid-template-columns:1fr}.main{padding:14px}}

/* v3.4.1 layout fix: evita que los campos de fecha se salgan del panel */
*,
*::before,
*::after {
  box-sizing: border-box;
}

input,
select,
button {
  max-width: 100%;
}

.grid > *,
.three > *,
.panel > * {
  min-width: 0;
}

#reports .grid {
  grid-template-columns: minmax(520px, 640px) minmax(520px, 1fr);
  align-items: start;
}

#reports .three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#reports input[type="date"],
#reports input[type="number"],
#reports select {
  width: 100%;
  min-width: 0;
  font-size: 14px;
  padding: 10px 9px;
}

#reports label {
  overflow-wrap: anywhere;
}

@media (max-width: 1200px) {
  #reports .grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  #reports .three {
    grid-template-columns: 1fr;
  }
}


/* v3.4.2 global layout fix: empresas, reportes, plantillas y expedientes */
html, body {
  overflow-x: hidden;
}

.main {
  max-width: 100%;
  overflow-x: hidden;
}

.panel {
  max-width: 100%;
  overflow-x: hidden;
}

.grid {
  grid-template-columns: minmax(420px, 640px) minmax(520px, 1fr);
  align-items: start;
}

input,
select,
textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

button {
  white-space: nowrap;
}

.table {
  table-layout: auto;
  max-width: 100%;
}

.table td,
.table th {
  word-break: break-word;
}

/* Empresas */
#companies .grid {
  grid-template-columns: minmax(480px, 650px) minmax(520px, 1fr);
}

#companies .three,
#companies .two {
  gap: 10px;
}

#companies input,
#companies select {
  font-size: 14px;
  padding: 10px 9px;
}

/* Formularios PDF / Plantillas */
#templates .three {
  grid-template-columns: minmax(160px, 220px) minmax(180px, 260px) minmax(300px, 1fr);
  align-items: end;
  gap: 14px;
}

#templates input[type="file"] {
  min-width: 0;
  width: 100%;
  border: 1px solid #cdd9e8;
  border-radius: 11px;
  padding: 8px;
  background: white;
}

#templates button {
  margin-top: 14px;
}

#fieldsBox,
#coordBox,
#templatesList,
#generatedList,
#reportsList,
#companiesList {
  max-width: 100%;
  overflow-x: auto;
}

/* Expedientes */
#generated .table {
  min-width: 680px;
}

/* Dashboard */
.cards {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}

/* Responsive general */
@media (max-width: 1300px) {
  .grid,
  #companies .grid,
  #reports .grid {
    grid-template-columns: 1fr;
  }

  #templates .three {
    grid-template-columns: 1fr;
  }

  .cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .main {
    padding: 12px;
  }

  .panel {
    padding: 16px;
  }

  .three,
  .two,
  #reports .three,
  #companies .three,
  #templates .three {
    grid-template-columns: 1fr;
  }

  button {
    width: 100%;
    margin-right: 0;
  }
}

/* v3.5 template actions */
.table button {
  padding: 8px 12px;
  margin: 2px 4px 2px 0;
}
