:root {
  --bg: #0a0f1d;
  --card: rgba(17, 24, 39, .86);
  --border: rgba(255, 255, 255, .08);
  --text: #e5eefc;
  --muted: #97a3b6;
  --accent: #9ad121;
  --accent-2: #3b82f6;
}

body.app-body {
  background: radial-gradient(circle at top, #152238, #0a0f1d 55%);
  color: var(--text);
  min-height: 100vh;
}

.card-dark,
.login-card,
.glass-nav {
  background: var(--card);
  border: 1px solid var(--border);
  box-shadow: 0 10px 35px rgba(0, 0, 0, .25);
  backdrop-filter: blur(10px);
}

.card-dark { border-radius: 18px; }
.login-wrapper { min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 24px; }
.login-card { width: min(520px, 96vw); padding: 34px; border-radius: 24px; }
.glass-nav { border-radius: 18px; margin: 16px; }
.form-control, .form-select {
  background: rgba(255,255,255,.04);
  color: var(--text);
  border-color: var(--border);
}
.form-control:focus, .form-select:focus {
  background: rgba(255,255,255,.06);
  color: var(--text);
  border-color: var(--accent-2);
  box-shadow: 0 0 0 .25rem rgba(59,130,246,.15);
}
.form-control::placeholder { color: #93a3ba; }
.table-dark { --bs-table-bg: transparent; }
a { color: #86b9ff; text-decoration: none; }
a:hover { color: white; }
.text-secondary { color: var(--muted) !important; }
.list-group-item { border-color: var(--border) !important; }
.btn-primary {
  background: linear-gradient(135deg, var(--accent), #7fb000);
  border-color: #7fb000;
  color: #111;
  font-weight: 700;
}
.btn-primary:hover { background: #a9df35; border-color: #a9df35; color: #111; }
.nav-logo { width: 38px; height: 38px; object-fit: cover; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); }
.login-logo { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; border: 2px solid rgba(255,255,255,.18); box-shadow: 0 10px 25px rgba(0,0,0,.35); }
.public-logo { width: 70px; height: 70px; object-fit: cover; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); }
.badge.text-bg-success { background: linear-gradient(135deg, #2ea44f, #74d680) !important; color: #07150c; }
.dropdown-menu-dark { background: #101827; border-color: var(--border); }
.border.rounded { border-color: rgba(255,255,255,.12) !important; }

.attachment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}
.attachment-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 10px;
}
.attachment-card img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.08);
}
.attachment-file {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  border: 1px dashed rgba(255,255,255,.15);
}
.timeline-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 10px;
}
.timeline-step {
  text-align: center;
  opacity: .45;
}
.timeline-step.active { opacity: 1; }
.timeline-bullet {
  width: 36px;
  height: 36px;
  margin: 0 auto 8px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.08);
  font-weight: 700;
}
.timeline-step.active .timeline-bullet {
  background: linear-gradient(135deg, var(--accent), #7fb000);
  color: #111;
}
.timeline-label {
  font-size: .85rem;
  color: var(--text);
}

/* V5 ajustes de contraste */
body.app-body,
.card-dark,
.login-card,
.glass-nav,
.card-dark .card-header,
.card-dark .card-body,
.card-dark p,
.card-dark li,
.card-dark span,
.card-dark div,
.card-dark small,
.card-dark h1,
.card-dark h2,
.card-dark h3,
.card-dark h4,
.card-dark h5,
.card-dark h6,
label,
.form-label,
.form-check-label,
.table,
.table td,
.table th {
  color: #ecf3ff;
}

.card-header {
  color: #f7fbff !important;
  font-weight: 700;
  letter-spacing: .2px;
}

.text-secondary,
.small.text-secondary,
.card-dark .text-secondary {
  color: #b9c7db !important;
}

.form-control,
.form-select {
  color: #f3f7ff !important;
  background: rgba(255,255,255,.06);
}

.form-control::placeholder { color: #a9b8cd; }
.form-check-input { background-color: rgba(255,255,255,.06); border-color: rgba(255,255,255,.25); }
.list-group-item { color: #eff5ff !important; }
.btn-outline-light { color: #eef5ff; }
.badge.bg-warning { color: #111 !important; }


.nav-link, .navbar-brand, .dropdown-item, .dropdown-toggle, .table td, .table th { color: #eef4ff !important; }
.card-dark .form-label, .card-dark .small, .card-dark p, .card-dark span, .card-dark div { color: #eef4ff; }
.card-dark .text-secondary { color: #c4d0e3 !important; }
textarea.form-control { min-height: 46px; }
.summary-grid { display:grid; grid-template-columns:1fr; gap:10px; }
.summary-grid > div { display:flex; justify-content:space-between; padding:10px 12px; border:1px solid rgba(255,255,255,.09); border-radius:12px; background:rgba(255,255,255,.03); }
.summary-grid span { color:#c6d2e5; }
.table-hover > tbody > tr:hover > * { color:#fff; }


.form-label { display:block; margin-bottom:.4rem; font-weight:600; }
.card-dark .form-check-label { line-height: 1.2; }
img[alt="QR Code da OS"] { background:#fff; }


.form-control-tall { min-height: 180px !important; white-space: pre-wrap; }
.form-control-xl { min-height: 280px !important; white-space: pre-wrap; }
.form-label-strong { color:#f8fbff !important; font-weight:700; letter-spacing:.2px; }
textarea.form-control { white-space: pre-wrap; }
.card-dark .summary-grid strong { color:#f8fbff; }
.card-dark ul { padding-left: 1rem; }


select, option { background:#0f172a !important; color:#f8fbff !important; }
.search-results-grid { display:grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.product-result-card, .selected-piece-row { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px; border:1px solid rgba(255,255,255,.09); border-radius:14px; background:rgba(255,255,255,.03); }
.selected-piece-row { flex-wrap:wrap; }
.piece-search-panel { display:grid; grid-template-columns: 1.3fr .7fr; gap:16px; }
@media (max-width: 991px){ .piece-search-panel{ grid-template-columns:1fr; } }
.hidden-piece-inputs { display:none; }
.pdf-note { font-size:.82rem; color:#c4d0e3; }

.search-results-list { display:flex; flex-direction:column; gap:10px; }
.search-line-item { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px; border:1px solid rgba(255,255,255,.09); border-radius:12px; background:rgba(255,255,255,.03); }
.form-select, .form-select option { color:#f8fbff !important; background-color:#0f172a !important; }
.form-text { color:#b9c7db !important; }

.dashboard-header { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.search-results-list .btn, .search-results-grid .btn { white-space:nowrap; }
.card-dark .form-control[readonly] { color:#dbe7fb; }
.pdf-section-gap { margin-bottom: 10px; }

.kanban-board { display:grid; grid-template-columns: repeat(4, minmax(260px,1fr)); gap:16px; overflow-x:auto; }
.kanban-col { min-height: 420px; }
.kanban-item { display:block; padding:12px; border:1px solid rgba(255,255,255,.08); border-radius:14px; background:rgba(255,255,255,.03); color:#fff; margin-bottom:12px; }
.kanban-item:hover { border-color: rgba(173, 226, 0, .45); }
@media (max-width: 1400px){ .kanban-board { grid-template-columns: repeat(2, minmax(260px,1fr)); } }
@media (max-width: 768px){ .kanban-board { grid-template-columns: 1fr; } }
