/* ============================================================ */
/* RESPONSIVE MEJORADO PARA MÓVILES - GutNes Pro */
/* ============================================================ */

/* Animaciones y transiciones mejoradas */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInFromRight {
    from {
        opacity: 0;
        transform: translateX(100%);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@media (max-width: 768px) {
    .wrapper {
        flex-direction: column;
        height: auto;
        min-height: 100vh;
    }

    .sidebar {
        width: 100%;
        padding: 12px 15px;
        flex-direction: row;
        height: auto;
        border-right: none;
        border-bottom: 1px solid rgba(148, 163, 184, 0.15);
        overflow-x: auto;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch;
        box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);
        animation: slideInFromRight 0.3s ease-out;
    }

    .logo {
        padding: 0 15px 0 0;
        border-bottom: none;
        border-right: 1px solid rgba(148, 163, 184, 0.1);
        margin: 0 15px 0 0;
        min-width: fit-content;
        margin-bottom: 0;
    }

    .logo h1 {
        font-size: 14px;
    }

    .logo-icon {
        width: 36px;
        height: 36px;
        font-size: 16px;
        margin-bottom: 8px;
    }

    .nav {
        flex: 1;
        padding: 0;
        display: flex;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        align-items: center;
    }

    .nav-btn {
        padding: 10px 12px;
        font-size: 12px;
        white-space: nowrap;
        margin-bottom: 0;
        flex-shrink: 0;
        gap: 6px;
        border-radius: 8px;
        transition: all 0.2s ease;
    }

    .nav-btn.active {
        background: linear-gradient(135deg, rgba(99, 102, 241, 0.3), rgba(236, 72, 153, 0.2));
        border-left: 2px solid #6366f1;
        padding-left: 11px;
        animation: scaleIn 0.2s ease;
    }

    .tools {
        display: none !important;
    }

    .status {
        display: none !important;
    }

    .main {
        flex: 1;
        animation: fadeInUp 0.4s ease-out;
    }

    .header {
        flex-direction: column;
        align-items: stretch;
        padding: 15px;
        gap: 12px;
    }

    .header h2 {
        font-size: 20px;
        margin-bottom: 0;
    }

    .header-right {
        flex-direction: column;
        gap: 10px;
    }

    .search-box {
        width: 100%;
    }

    .btn {
        width: 100%;
        padding: 10px 16px;
        font-size: 12px;
    }

    .content {
        padding: 15px;
        overflow-y: auto;
    }

    .view {
        animation: fadeInUp 0.3s ease-out;
    }

    .grid {
        grid-template-columns: 1fr;
        gap: 15px;
        margin: 15px 0;
    }

    .card {
        padding: 16px;
        animation: fadeInUp 0.3s ease-out;
        transition: all 0.3s ease;
    }

    .card:active {
        transform: scale(0.98);
    }

    .card-value {
        font-size: 24px;
    }

    .stat-card {
        padding: 16px;
        animation: fadeInUp 0.3s ease-out;
    }

    .stat-value {
        font-size: 28px;
    }

    .stat-label {
        font-size: 11px;
    }

    .table {
        font-size: 12px;
    }

    .table th,
    .table td {
        padding: 8px;
    }

    .modal {
        animation: fadeInUp 0.3s ease-out;
    }

    .modal-content {
        width: 95%;
        padding: 20px;
        max-width: none;
        animation: slideInFromRight 0.3s ease-out;
    }

    .modal-title {
        font-size: 18px;
        margin-bottom: 15px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .form-group {
        margin-bottom: 15px;
    }

    .form-group label {
        font-size: 12px;
    }

    .form-group input,
    .form-group textarea,
    .form-group select {
        font-size: 14px;
        padding: 10px 12px;
        transition: all 0.2s ease;
    }

    .form-group input:focus,
    .form-group textarea:focus,
    .form-group select:focus {
        transform: translateY(-2px);
    }

    .modal-buttons {
        flex-direction: column;
        gap: 10px;
    }

    .modal-buttons button {
        padding: 10px 16px;
        font-size: 12px;
        transition: all 0.2s ease;
    }

    .modal-buttons button:active {
        transform: scale(0.98);
    }

    .empty {
        padding: 40px 20px;
        animation: fadeInUp 0.3s ease-out;
    }

    .empty-icon {
        font-size: 40px;
        animation: fadeInUp 0.4s ease-out;
    }

    .dropdown-menu {
        position: fixed;
        right: 10px;
        width: 200px;
        animation: slideInFromRight 0.2s ease-out;
    }

    .dropdown-item {
        padding: 12px 16px;
        font-size: 12px;
        transition: all 0.2s ease;
    }

    .toast {
        right: 10px;
        left: 10px;
        max-width: none;
        animation: fadeInUp 0.3s ease-out;
    }

    .line-item {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
    }

    .line-item input {
        width: 100%;
    }

    .line-item .line-subtotal {
        width: 100%;
        text-align: right;
    }
}

@media (max-width: 480px) {
    .sidebar {
        padding: 10px;
        gap: 5px;
    }

    .logo {
        padding: 0 10px 0 0;
        margin: 0 10px 0 0;
    }

    .logo h1 {
        font-size: 12px;
        line-height: 1;
    }

    .logo-icon {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }

    .nav {
        gap: 4px;
    }

    .nav-btn {
        padding: 8px 10px;
        font-size: 11px;
        gap: 6px;
    }

    .header {
        padding: 12px;
        gap: 10px;
    }

    .header h2 {
        font-size: 18px;
    }

    .content {
        padding: 12px;
    }

    .grid {
        gap: 12px;
    }

    .card {
        padding: 12px;
        border-radius: 12px;
    }

    .card-title {
        font-size: 13px;
    }

    .card-value {
        font-size: 20px;
    }

    .card-actions {
        gap: 6px;
        margin-top: 12px;
        flex-wrap: wrap;
    }

    .btn-sm {
        padding: 6px 10px;
        font-size: 10px;
    }

    .stat-card {
        padding: 12px;
    }

    .stat-value {
        font-size: 24px;
    }

    .modal {
        padding: 10px;
    }

    .modal-content {
        width: 100%;
        padding: 16px;
        max-height: 95vh;
    }

    .modal-title {
        font-size: 16px;
        margin-bottom: 12px;
    }

    .form-group {
        margin-bottom: 12px;
    }

    .form-group label {
        font-size: 11px;
    }

    .form-group input,
    .form-group textarea,
    .form-group select {
        font-size: 14px;
        padding: 10px;
        min-height: 44px;
    }

    .form-group textarea {
        min-height: 80px;
    }

    .modal-buttons {
        gap: 8px;
        margin-top: 16px;
    }

    .modal-buttons button {
        padding: 10px 12px;
        font-size: 11px;
        min-height: 44px;
    }

    .table th,
    .table td {
        padding: 6px;
        font-size: 10px;
    }

    .badge-status {
        font-size: 9px;
        padding: 3px 8px;
    }

    .empty {
        padding: 30px 15px;
    }

    .empty-icon {
        font-size: 36px;
    }

    .empty-title {
        font-size: 14px;
    }

    .toast {
        right: 8px;
        left: 8px;
        padding: 12px 16px;
        font-size: 12px;
    }

    .dropdown-menu {
        right: 8px;
        left: 8px;
        width: auto;
        min-width: 160px;
    }

    .dropdown-item {
        padding: 10px 14px;
        font-size: 11px;
    }

    /* Garantizar altura mínima toque en móviles */
    button,
    input,
    textarea,
    select,
    [role="button"],
    [role="menuitem"] {
        min-height: 44px;
    }

    .nav-btn {
        min-height: 40px;
    }

    .btn {
        min-height: 44px;
    }

    .line-item {
        gap: 6px;
    }

    .line-item .line-subtotal {
        font-size: 12px;
    }
}
