body { background: #f7f7f9; }
.stat-card { border: 0; border-radius: 1rem; }
.table td { vertical-align: middle; }
.descripcion { max-width: 440px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card { border-radius: 1rem; }
.kanban-column { min-height: 55vh; background: #f1f3f5; border-radius: 1rem; padding: 1rem; }
.kanban-card { border: 0; border-radius: .9rem; }
.pin-card { border-left: .35rem solid #ffc107; }
.today-card { border-left: .35rem solid #0d6efd; }
.calendar-wrap { min-height: 720px; }
.small-muted { color: #6c757d; font-size: .875rem; }
.kanban-dropzone { min-height: 160px; border-radius: 1rem; padding: .25rem; }
.kanban-over { outline: 2px dashed rgba(13,110,253,.55); background: rgba(13,110,253,.08); }
.kanban-card { cursor: grab; }
.kanban-card:active { cursor: grabbing; }
.small-muted { color: #6c757d; font-size: .875rem; }
.descripcion { max-width: 360px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* v5 */
.stat-card { min-height: 110px; }
[data-bs-theme="dark"] .card { border-color: rgba(255,255,255,.12); }
[data-bs-theme="dark"] .table { --bs-table-bg: transparent; }
.badge { vertical-align: middle; }
.task-card { cursor: grab; }
.task-card:active { cursor: grabbing; }

/* v6: mobile y accesibilidad */
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible, a:focus-visible {
  outline: 3px solid rgba(13,110,253,.45);
  outline-offset: 2px;
}
@media (max-width: 768px) {
  .datatable thead { display: none; }
  .datatable, .datatable tbody, .datatable tr, .datatable td { display: block; width: 100%; }
  .datatable tr { margin-bottom: 1rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: .75rem; background: var(--bs-body-bg); }
  .datatable td { border: 0; padding: .35rem .25rem; }
  .datatable td:last-child { display: flex; gap: .35rem; flex-wrap: wrap; }
  .navbar .nav-link { padding: .65rem 1rem; }
  .stat-card .display-6 { font-size: 1.75rem; }
}
.kanban-column { min-height: 280px; }
.estado-pendiente { border-left: 4px solid #6c757d; }
.estado-en_curso { border-left: 4px solid #0d6efd; }
.estado-bloqueada { border-left: 4px solid #212529; }
.estado-completada { border-left: 4px solid #198754; }

/* v7 */
.density-compacta .card-body { padding: .75rem; }
.density-compacta .table > :not(caption) > * > * { padding: .35rem .45rem; }
.density-compacta .form-control, .density-compacta .form-select, .density-compacta .btn { padding-top: .25rem; padding-bottom: .25rem; }
.focus-mode .card { max-width: 960px; }
.fc-event { cursor: grab; }

/* v9 */
.task-card { transition: transform .12s ease, box-shadow .12s ease; }
.task-card:hover { transform: translateY(-1px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.12); }
.task-section-title { display:flex; align-items:center; gap:.5rem; }
.mobile-bottom-nav { position: fixed; left:0; right:0; bottom:0; z-index:1030; display:flex; justify-content:space-around; background: var(--bs-body-bg); border-top:1px solid var(--bs-border-color); box-shadow:0 -.25rem .75rem rgba(0,0,0,.08); }
.mobile-bottom-nav a { flex:1; text-align:center; padding:.45rem .25rem; text-decoration:none; color:var(--bs-body-color); font-size:.75rem; }
.mobile-bottom-nav a i { display:block; font-size:1rem; margin-bottom:.1rem; }
@media (max-width: 991.98px) { main.container-fluid { padding-bottom: 4.5rem; } .table-mobile-cards thead { display:none; } .table-mobile-cards tr { display:block; border:1px solid var(--bs-border-color); border-radius:.75rem; margin-bottom:.75rem; padding:.5rem; } .table-mobile-cards td { display:block; border:0; padding:.35rem .25rem; } .table-mobile-cards td::before { content: attr(data-label); display:block; font-size:.75rem; color:var(--bs-secondary-color); } }
.kanban-column { min-width: 280px; }
.kanban-scroll { overflow-x:auto; }
.comment-reply { margin-left: 1.25rem; border-left: 3px solid var(--bs-border-color); padding-left: .75rem; }
.eisenhower-cell { min-height: 105px; }

/* v10: pulido móvil y modos de interfaz */
@media (max-width: 768px) {
  .table-mobile-cards thead { display: none; }
  .table-mobile-cards, .table-mobile-cards tbody, .table-mobile-cards tr, .table-mobile-cards td { display: block; width: 100%; }
  .table-mobile-cards tr { border: 1px solid var(--bs-border-color); border-radius: 1rem; margin-bottom: 1rem; padding: .75rem; background: var(--bs-body-bg); box-shadow: 0 .25rem .75rem rgba(0,0,0,.05); }
  .table-mobile-cards td { border: 0; padding: .35rem .25rem; }
  .table-mobile-cards td::before { content: attr(data-label); display: block; font-size: .75rem; color: var(--bs-secondary-color); font-weight: 600; }
  .floating-new-task { position: fixed; right: 1rem; bottom: 5rem; z-index: 1040; border-radius: 999px; box-shadow: 0 .5rem 1rem rgba(0,0,0,.2); }
}
body.ui-simple .advanced-only { display: none !important; }
.week-column { min-height: 260px; }
