:root{
  --bg:#0b1020;
  --panel:#0f1630;
  --card:#ffffff;
  --muted:#6b7280;
  --border:#e5e7eb;
  --blue:#0f4c8a;
  --blue2:#123e7a;
  --btn:#111827;
  --orange:#ed8015;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: linear-gradient(180deg, #eaf0f8 0%, #eef3fb 100%);
  color:#111827;
}

.topbar{
  height:72px;
  background: linear-gradient(90deg, #0b2246 0%, #0f4c8a 100%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  color:#fff;
}

.brand{display:flex; align-items:center; gap:12px}
.brand-logo{
  width:36px; height:36px; border-radius:10px;
  display:grid; place-items:center;
  background: rgba(255,255,255,.16);
  font-weight:800;
}
.brand-name{font-weight:800; letter-spacing:.5px}
.brand-sub{font-size:12px; opacity:.85}

.topbar-right{display:flex; align-items:center; gap:10px}
.pill{
  padding:8px 12px; border-radius:999px;
  background: rgba(255,255,255,.14);
  color:#fff; text-decoration:none; font-weight:700;
}
.pill.ghost{background: rgba(255,255,255,.10);}

.layout{
  display:grid;
  grid-template-columns: 270px 1fr;
  gap:18px;
  padding:18px;
}

.sidebar{
  background: linear-gradient(180deg, #0f1630 0%, #0b1020 100%);
  border-radius:18px;
  padding:16px;
  color:#fff;
  min-height: calc(100vh - 72px - 36px);
}

.user-card{
  display:flex; gap:12px; align-items:center;
  padding:12px; border-radius:16px;
  background: rgba(255,255,255,.06);
  margin-bottom:14px;
}
.avatar{
  width:42px; height:42px; border-radius:14px;
  display:grid; place-items:center;
  background: #ed8015;
  font-weight:900;
  color:#111827;
}
.user-name{font-weight:800}
.user-sub{font-size:12px; opacity:.8}

.nav{display:flex; flex-direction:column; gap:10px}
.nav-item{
  padding:12px 12px;
  border-radius:14px;
  text-decoration:none;
  color:#fff;
  background: rgba(255,255,255,.06);
  font-weight:700;
}
.nav-item:hover{background: rgba(255,255,255,.10)}
.nav-item.active{
  outline: 1px solid rgba(237,128,21,.55);
  background: rgba(237,128,21,.12);
}

.content{padding-right:6px}

.card{
  background: var(--card);
  border: 1px solid rgba(15,76,138,.10);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(15,23,42,.08);
}

h1{margin:6px 0 8px}
.muted{color:var(--muted); margin:0 0 12px}

.breadcrumb{
  color:#6b7280;
  font-size:13px;
  margin-bottom:8px;
}
.breadcrumb span{margin:0 6px; opacity:.55}

.flash-wrap{margin-bottom:12px}
.flash{
  padding:10px 12px;
  border-radius:14px;
  font-weight:800;
  margin-bottom:10px;
}
.flash-success{background:#e9fbf0; border:1px solid #bff0cf; color:#0f5132}
.flash-error{background:#ffecec; border:1px solid #ffd1d1; color:#8a1f1f}

.action-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:14px;
}
.action-card{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px;
  border-radius:16px;
  border:1px solid var(--border);
  text-decoration:none;
  color:#111827;
}
.action-card:hover{border-color:#cfe1ff; box-shadow: 0 8px 20px rgba(15,76,138,.10)}
.action-ico{
  width:38px; height:38px; border-radius:12px;
  display:grid; place-items:center;
  background:#eef3fb;
  font-size:18px;
}
.action-title{font-weight:900}
.action-sub{color:var(--muted); font-size:13px; margin-top:2px}

.form{margin-top:10px}
.grid-2{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}
.grid-1{
  display:grid;
  grid-template-columns: 1fr;
  gap:12px;
}

.field label{
  display:block;
  font-weight:900;
  margin:0 0 6px;
}
.field input,
.field textarea,
.field select{
  width:100%;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
  outline:none;
  background:#fff;
}
.field input:focus,
.field textarea:focus,
.field select:focus{
  border-color:#cfe1ff;
  box-shadow: 0 0 0 3px rgba(15,76,138,.10);
}

.actions{
  display:flex; gap:10px; align-items:center;
  margin-top:14px;
  flex-wrap:wrap;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:14px;
  text-decoration:none;
  font-weight:900;
  border:1px solid transparent;
  cursor:pointer;
  user-select:none;
}
.btn-sm{padding:8px 12px; border-radius:12px; font-size:13px}
.btn-primary{
  background: linear-gradient(90deg, #0f4c8a 0%, #123e7a 100%);
  color:#fff;
}
.btn-light{
  background:#eef3fb;
  color:#111827;
  border:1px solid #dbe6f6;
}
.btn-outline{
  background:#fff;
  color:#111827;
  border:1px solid var(--border);
}
.btn:hover{filter:brightness(1.02)}

.table-wrap{margin-top:12px}
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
}
.table thead th{
  text-align:left;
  padding:12px;
  background:#f5f7fb;
  font-weight:900;
}
.table tbody td{
  padding:12px;
  border-top:1px solid var(--border);
}
.chip{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:#fff4e6;
  border:1px solid #ffd8a8;
  font-weight:900;
  color:#7a3e00;
}

/* ===== Secciones coloreadas ===== */
.section-title{
  font-weight:1000;
  padding:10px 14px;
  border-radius:14px;
  margin:12px 0 12px;
  display:inline-block;
}
.section-1{ background:#e8f1ff; border:1px solid #cfe1ff; color:#163a6b; }
.section-2{ background:#fff4e6; border:1px solid #ffd8a8; color:#7a3e00; }
.section-3{ background:#e9fbf0; border:1px solid #bff0cf; color:#0f5132; }
.section-4{ background:#f3e8ff; border:1px solid #d8b4fe; color:#5b21b6; }

.totals{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:12px;
}
.totals-box{
  border-radius:16px;
  padding:14px;
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.totals-total{background:#eef6ff; border-color:#cfe1ff}
.totals-saldo{background:#fff5e8; border-color:#ffd8a8}
.totals-label{font-weight:1000}
.totals-value{font-weight:1000; font-size:20px}

/* ===== Imprimir ===== */
.print-card{padding:18px}
.print-actions{
  display:flex;
  gap:10px;
  margin-bottom:10px;
  flex-wrap:wrap;
}
.print-title{margin-top:10px}
.print-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  margin-top:14px;
}
.print-col{min-width:0}
.row{margin:6px 0}
.box{
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  min-height:44px;
  white-space:pre-wrap;
  background:#fff;
}

/* ===== Bloque de producción en impresión ===== */
.print-production{
  margin:28px 0 24px;
  page-break-inside: avoid;
  break-inside: avoid;
}

.print-sign-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:56px;
  align-items:center;
  margin-bottom:34px;
}

.print-sign-item{
  display:flex;
  align-items:center;
  gap:14px;
}

.print-sign-label{
  font-size:24px;
  font-weight:500;
  white-space:nowrap;
  color:#111;
}

.print-sign-line{
  flex:1;
  border-bottom:2px solid #444;
  height:20px;
}

.print-stamp-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:48px;
  align-items:start;
}

.print-stamp-block{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.print-stamp-title{
  font-size:16px;
  font-weight:700;
  letter-spacing:.2px;
  text-transform:uppercase;
  color:#111;
}

.print-stamp-boxes{
  display:grid;
  grid-template-columns: 62px 62px 62px 130px;
  gap:8px;
  align-items:start;
}

.print-stamp-box{
  height:62px;
  border:2px solid #444;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:8px;
  font-size:14px;
  font-weight:700;
  line-height:1;
  color:#111;
  background:#fff;
}

.print-stamp-box.hour-box{
  font-size:14px;
  letter-spacing:.2px;
}

/* Print mode */
@page{
  size: A4 portrait;
  margin: 8mm;
}

/* Print mode */
@media print{
  body{
    background:#fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .topbar,
  .sidebar,
  .no-print{
    display:none !important;
  }

  .layout{
    grid-template-columns:1fr;
    padding:0;
    gap:0;
  }

  .content{
    padding:0;
  }

  .card{
    border:none;
    box-shadow:none;
  }

  .print-card{
    padding:0 !important;
    font-size:12px;
    line-height:1.2;
  }

  .print-title{
    margin:2px 0 4px;
    font-size:22px;
  }

  .muted{
    font-size:11px;
    margin:0 0 6px;
  }

  .breadcrumb{
    font-size:11px;
    margin-bottom:4px;
  }

  .print-grid{
    gap:10px;
    margin-top:8px;
  }

  .row{
    margin:3px 0;
    font-size:12px;
  }

  .box{
    padding:6px 8px;
    min-height:28px;
    font-size:11px;
    border-radius:10px;
  }

  hr{
    margin:8px 0;
  }

  .print-production{
    margin:10px 0 8px;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .print-sign-row{
    gap:20px;
    margin-bottom:10px;
  }

  .print-sign-label{
    font-size:15px;
    font-weight:600;
  }

  .print-sign-line{
    height:12px;
    border-bottom:1.5px solid #444;
  }

  .print-stamp-grid{
    gap:20px;
  }

  .print-stamp-block{
    gap:8px;
  }

  .print-stamp-title{
    font-size:14px;
    font-weight:700;
  }

  .print-stamp-boxes{
    gap:6px;
  }

  .print-stamp-box{
    width:42px;
    height:42px;
    font-size:18px;
    border:1.5px solid #444;
  }

  .print-stamp-box.hour-box{
    width:78px;
    font-size:14px;
  }
}
/* ===== DASHBOARD ===== */
.stats-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
  margin-top:14px;
}

.stat-card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:#f7f9ff;
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
}

.stat-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}

.stat-title{
  font-weight:1000;
}

.stat-sub{
  color:var(--muted);
  font-size:13px;
  margin-bottom:8px;
}

.stat-value{
  font-weight:1000;
  font-size:28px;
}

.badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:#eef3fb;
  border:1px solid #dbe6f6;
  font-weight:900;
  font-size:12px;
}

.badge-soft{
  background:#fff4e6;
  border:1px solid #ffd8a8;
  color:#7a3e00;
}

.panel{
  margin-top:14px;
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:#ffffff;
}

.panel-title{
  font-weight:1000;
  margin-bottom:6px;
}

/* Responsive */
@media (max-width: 1100px){
  .stats-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}

@media (max-width: 900px){
  .print-sign-row,
  .print-stamp-grid,
  .print-grid{
    grid-template-columns: 1fr;
  }

  .print-stamp-boxes{
    grid-template-columns: 52px 52px 52px 100px;
    gap:6px;
  }

  .print-stamp-box{
    height:52px;
    font-size:12px;
    padding-top:7px;
  }

  .print-stamp-box.hour-box{
    font-size:12px;
  }

  .stats-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .action-grid {
    grid-template-columns: 1fr;
  }
}
